package other;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Test {
/************************************遍历list************************************************/
//foreach遍历list
public void forEachlist(List<String> list){
for(String a: list){
System.out.println("foreach遍历list: " + a);
}
}
//用iterator遍历list
public void iteratorList(List<String> list){
Iterator<String> it = list.iterator();
while(it.hasNext()){
String a = it.next();
System.out.println("iterator遍历list: " + a);
}
}
//iterator松耦合,符合抽象编程的原则。foreach也是使用iterator来遍历的 。如果用普通的for来遍历的话,是紧耦合,可以倒着循环
/*************************************遍历MAP*****************************************************/
//通过 entrySet 来遍历Map
public void entryMap(Map<String,String> hm){
Iterator it = hm.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Entry) it.next();
System.out.print("KEY: " + entry.getKey() + " || ");
System.out.println("VAL: " + entry.getValue());
}
}
//通过 keySet 来遍历Map
public void keyMap(Map<String,String> hm){
Iterator it = hm.keySet().iterator();
while (it.hasNext()) {
String key = (String)it.next();
String val = (String)hm.get(key);
System.out.print("KEY: " + key + " || ");
System.out.println("VAL: " + val);
}
}
//keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中。
// 所以使用entryset遍历map效率要高一些。
public static void main(String[] args) {
Test test = new Test();
/*测试遍历list的方法
List<String> list = new ArrayList<String>();
list.add("6");
list.add("2");
list.add("3");
list.add("4");
// test.forEachlist(list);
test.iteratorList(list);
*/
//测试遍历map的方法
Map<String, String> m = new HashMap<String, String>();
m.put("1", "1");
m.put("2", "2");
m.put("3", "3");
m.put("4", "4");
m.put("5", "5");
m.put("6", "6");
// test.entryMap(m);
test.keyMap(m);
}
}