標籤:
一 , 集合的體會(Collection , list, set ,map)
1,遍曆list的方法:
第一種方法:for-each方法
public class ListTest{
public static void main(String[] args){
List<String> list = new ArrayList<String>();
long t1,t2;
for(int j = 0; j < 10000000; j++)
{
list.add("aaaaaa" + j);
}
for(String tmp:list)
{
//System.out.println(tmp);
}
}
第二種方法:for-變數的方法
public class ListTest{
public static void main(String[] args){
List<String> list = new ArrayList<String>();
long t1,t2;
for(int j = 0; j < 10000000; j++)
{
list.add("aaaaaa" + j);
}
for(int i = 0; i < list.size(); i++)
{
list.get(i);
//System.out.println(list.get(i));
}
}
t2=System.currentTimeMillis();
}
第三種方法 :迭代遍曆方法
public class ListTest{
public static void main(String[] args){
List<String> list = new ArrayList<String>();
long t1,t2;
for(int j = 0; j < 10000000; j++)
{
list.add("aaaaaa" + j);
}
Iterator<String> iter = list.iterator();
t1=System.currentTimeMillis();
while(iter.hasNext())
{
iter.next();
//System.out.println(iter.next());
}
t2=System.currentTimeMillis();
// for (Iterator i = list.iterator(); i.hasNext();) {
//System.out.println(i.next());
//}
}
}
2,遍曆Set的方法:
1.迭代遍曆:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
2.for迴圈遍曆:
for (String str : set) {
System.out.println(str);
}
優點還體現在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for迴圈遍曆:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
}
3.Map 的遍曆
//迴圈遍曆map的方法
public class CircleMap {
public static void main(String[] args) {
Map<String, Integer> tempMap = new HashMap<String, Integer>();
tempMap.put("a", 1);
tempMap.put("b", 2);
tempMap.put("c", 3);
// 遍曆方法一 hashmap entrySet() 遍曆
System.out.println("方法一");
Iterator it = tempMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// JDK1.5中,應用新特性For-Each迴圈
// 遍曆方法二
System.out.println("方法二");
for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
String key = entry.getKey().toString();
String value = entry.getValue().toString();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// 遍曆方法三 hashmap keySet() 遍曆
System.out.println("方法三");
for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 迴圈輸出key
System.out.println("key=" + obj + " value=" + tempMap.get(obj));
}
for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 迴圈輸出value
}
System.out.println("");
// 遍曆方法四 treemap keySet()遍曆
System.out.println("方法四");
for (Object o : tempMap.keySet()) {
System.out.println("key=" + o + " value=" + tempMap.get(o));
}
System.out.println("11111");
// java如何遍曆Map <String, ArrayList> map = new HashMap <String,
// ArrayList>();
System.out.println("java 遍曆Map <String, ArrayList> map = new HashMap <String, ArrayList>();");
Map<String, ArrayList> map = new HashMap<String, ArrayList>();
Set<String> keys = map.keySet();
Iterator<String> iterator = keys.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
ArrayList arrayList = map.get(key);
for (Object o : arrayList) {
System.out.println(o + "遍曆過程");
}
}
System.out.println("2222");
Map<String, List> mapList = new HashMap<String, List>();
for (Map.Entry entry : mapList.entrySet()) {
String key = entry.getKey().toString();
List<String> values = (List) entry.getValue();
for (String value : values) {
System.out.println(key + " --> " + value);
}
}
}
}
Q:Comparable和Comparator區別
A:調用java.util.Collections.sort(List list)方法來進行排序的時候,List內的Object都必須實現了Comparable介面。
java.util.Collections.sort(List list,Comparator c),可以臨時聲明一個Comparator 來實現排序。
Collections.sort(imageList, new Comparator() {
public int compare(Object a, Object b) {
int orderA = Integer.parseInt( ( (Image) a).getSequence());
int orderB = Integer.parseInt( ( (Image) b).getSequence());
return orderA - orderB;
}
});
如果需要改變排列順序
改成return orderb - orderA 即可。
JAVA-集合-隨筆