List遍历
- 方法一:普通for遍历
List list = new ArrayList();
for (int i = 0; i < list.size(); i++) {
Object o = list.get(i);
System.out.println(o);
}
- 方法二:增强for
List list = new ArrayList();
for (Object o : list) {
//此处Object为创建list时需要填写的泛型
System.out.println(o);
}
- 方法三:迭代器方式(1)
List list = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
//此种遍历方法适用于删除list元素,也可以使用倒序遍历删除
iterator.remove();
}
- 方法四:迭代器方式(2)
List list = new ArrayList();
for (Iterator iterator = list.iterator();iterator.hasNext();) {
Object next = iterator.next();
System.out.println(next);
}
5.方法五:倒叙遍历(可用于删除操作)
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (int i = list.size() - 1; i >= 0; i--) {
Integer integer = list.get(i);
if (2 == integer) {
list.remove(integer);
}
}
System.err.println(list);
[1, 3]
set遍历
- 方法一:增强for
Set set = new HashSet();
for (Object o : set) {
System.out.println(o);
}
- 方法二:迭代器
Set set = new HashSet();
for (Iterator iterator = set.iterator();iterator.hasNext();) {
Object next = iterator.next();
System.out.println(next);
}
Map遍历
- 方法一:在for中使用entries,使用频率最高
Map<String, Object> map = new HashMap();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
System.out.println("key:" + key + ",value:" +value );
}
- 方法二:在for循环中遍历key或者values ,适用于只需要键或者值。效率更高
Map <String,Object>map = new HashMap<>();
for(String key : map.keySet()){
//获取map中每一个key
System.out.println(key);
}
for(Object value : map.values()){
//获取map中每一个value
System.out.println(value);
}
- 迭代器方式
注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(同上list通过Iterator方式可正确遍历完成remove操作,直接调用list的remove方法就会抛异常)。
Map <String,Object>map = new HashMap<>();
Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, Object> entry = iterator.next();
String key = entry.getKey();
Object value = entry.getValue();
iterator.remove();
System.out.println("key: "+key+",value: "+value);
}
- 方法四:通过键找值遍历,效率低,不建议使用
Map <String,Object>map = new HashMap<>();
for (String key : map.keySet()){
Object value = map.get(key);
System.out.println("key: "+key+",value: "+value);
}
5.方法五:JDK8 foreach
// JDK8的迭代方式
Map <String,Object>map = new HashMap<>();
infoMap.forEach((key, value) -> {
System.out.println(key + ":" + value);
});