java中像list,set,map集合基本是每个人开发者都会用到的,那么今天就来总结一下他们的遍历方式吧。
List 遍历方式(4种)
List<Integer> lists = new ArrayList<>();
- 普通的for循环
for (int i = 0; i < lists.size(); i++) {
System.out.println(lists.get(i));
}
- 增强型for循环
for (Integer i : lists) {
System.out.println(i);
}
- Iterator 迭代器
Iterator<Integer> iterator = lists.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
- jdk1.8-通过forEach遍历
lists.forEach(element ->{
System.out.println(element);
});
Set集合遍历方式(2种)
Set<Integer> sets=new HashSet<>();
- 增强型for循环
for(Integer i:sets){
System.out.println(i);
}
- Iterator 迭代器
Iterator<Integer> iterator=sets.iterator();
while(iterator.hasNext()){
System.out.println("set="+iterator.next());
}
注意:由于set 集合是无序的,故不能通过get()方法取出其中的元素,也不能通过普通的for循环遍历。
Map集合遍历方式(3种)
Map<Integer, String> map = new HashMap<>();
- 获取map.keySet()遍历
Iterator<Integer> iterator=map.keySet().iterator();
while (iterator.hasNext()){
//System.out.println(iterator.next()+"---"+map.get(iterator.next())); //注意:同一句话中不能出现两次iterator调用。
Integer i=iterator.next();
System.out.println("key="+i+" value="+ map.get(i));
}
- 通过map.entrySet()遍历
Iterator<Map.Entry<Integer, String>> entryIterator=map.entrySet().iterator();
while (entryIterator.hasNext()){
Entry<Integer, String> entry = entryIterator.next();
System.out.println("key="+entry.getKey()+" value="+entry.getValue());
}
//或者
for(Map.Entry<Integer, String> entry:map.entrySet()){
System.out.println("key="+entry.getKey()+" value="+entry.getValue());
}
这种可以把 key value 同时取出,推荐!
- jdk1.8–通过forEach遍历
map.forEach((key,value)->{
System.out.println("key=" + key + " value=" + value);
});