1:Collection 和 Map 都是Java體系爲我們提供的強大集合工具,他們的遍歷是最多的操作,那麼他們有什麼不同呢?請看如下代碼
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class CollectionAndMap {
public static void main(String[] args) {
HashMap<String , String> hashMap = new HashMap<String, String>();
hashMap.put("name", "liufu");
hashMap.put("gender", "nan");
iteratorMap(hashMap);
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("name = liufu");
arrayList.add("gender = men");
iteratorCollection(arrayList);
Map<?, ?> map = System.getProperties();
iteratorMap(map);
}
public static void iteratorCollection(Collection<?> collection){
long startTime = System.currentTimeMillis();
//collection接口實現類可以直接獲取Iterator迭代器,來遍歷
Iterator<?> iterator = collection.iterator();
while (iterator.hasNext()) {
String valueString = (String) iterator.next();
System.out.println(valueString);
}
System.out.println(System.currentTimeMillis() - startTime);
}
public static void iteratorMap(Map<?, ?> map){
long startTime = System.currentTimeMillis();
//map則需要先將其轉化爲Set然後再獲取Iterator迭代器來變了
Set<?> set = map.entrySet();
Iterator<?> iterator = set.iterator();
while (iterator.hasNext()) {
Entry<?, ?> entry = (Entry<?, ?>) iterator.next();
if(entry.getKey().toString().contains("os")){
System.out.println(entry);
}
}
System.out.println(System.currentTimeMillis() - startTime);
}
}