2.迭代集合:
List:
for循环:从0开始循环到length-1,通过索引获取元素
增强for循环:for(类型 变量名 : 集合)
Iterator:通过interator()获取迭代器,调用hasNext()和next()来迭代
(迭代器)
Enumeration:只适用于Vector,elements()获取
Enumeration、hasMoreElements()、nextElement()
Set:由于Set集合是无序的,所以不能用get()方法来通过摸个索引获取,
不能使用普通的for循环来便利。可使用Iteraror和增强for循环来进行迭代。
Map:不能直接迭代,可以先获取一个Set,通过迭代Set来达到迭代Map的目的。
即:将Map通过以下两种方法转成Set后,在进行迭代。
a)keySet:通过Map的keySet()方法,可以获取一个所有键对象组成的Set,
迭代这个Set就可以得到没一个键,那么通过键就可以获取值。
例:
Map map = new HashMap();
map.put("1","aaa");
map.put("2","bbb");
map.put("3","ccc");
Set keySet = map.keySet();
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
System.out.println(key + "," + map.get(key));
}
打印结果:3,ccc
2,bbb
1,aaa
b)entrySet:调用Map的entrySet()方法可以获取到Map中
所有Entry(即:键值对)组成的Set,迭代这个Set得到
每一个Entry,在调用getKey()和getValue()获取键和值。
例:
Map map = new HashMap();
map.put("1","aaa");
map.put("2","bbb");
map.put("3","ccc");
Set<map.entry> entrySet = map.entrySet();
for (Iterator<entry> iterator = entrySet.iterator(); iterator.hasNext();) {
Map.Entry entry = (Entry) iterator.next();
System.out.println(entry.getKey() + "," + entry.getValue());
}
打印结果:3,ccc
2,bbb
1,aaa