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