一 , 集合的体会(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 即可。
新闻热点
疑难解答