一 , 集合的體會(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 即可。
新聞熱點
疑難解答