Collection 和 Map 遍歷過程的區別

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);
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章