集合常用的遍历方式有for循环和 Iterator 迭代器,在此做一个简单的记录。
List
List<String> list = new ArrayList<>();
// 1. 普通for 循环遍历
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
// 2. 增强for循环
for (String s : list) {
System.out.print(s);
}
Iterator<String> iterator = list.iterator();
// 3. 迭代器遍历
while (iterator.hasNext()){
System.out.print(iterator.next());
}
// 4. list集合自带的迭代器
ListIterator<String> listIte = list.listIterator();
while (listIte.hasNext()){
System.out.print(listIte.next());
}
// 5. Lombda 表达式
list.forEach(item -> System.out.print(item));
Map
Map是一个接口,实现类中
HashMap 是无序的(跟插入的顺序无关)
LinkedHashMap 是有序的(按照插入的顺序)
TreeMap 是有序的(按照key排序)
Map<String,Object> map = new HashMap<>();
// 1. for循环
for(Map.Entry entry: map.entrySet()){
System.out.println(entry.getKey() + " :: " + entry.getValue());
}
// 2. entrySet()迭代器
Iterator it2 = map.entrySet().iterator();
while(it2.hasNext()){
Map.Entry entry = (Map.Entry) it2.next();
System.out.println(entry.getKey() + "::" + entry.getValue());
}
//3.keyset()迭代
Iterator<String> it3 = map.keySet().iterator();
while (it3.hasNext()){
String key = it3.next();
String value = map.get(key).toString();
}
//4. foreach jdk1.8
map.forEach((key,value)->{
System.out.println(key + "::" + value);
});