使用Iterator(迭代器)来遍历容器的元素(List/Set/Map),总结遍历各种容器的方法
2019-08-11 20:36
399 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44007988/article/details/99224971
使用Iterator(迭代器)来遍历容器的元素(List/Set/Map)
其中遍历Map的时候有两种方式,第一种是调用Map的entrySet()方法,返回的是一个Set<Map.Entry<xxx,xxx>> a = xx.entrySet(),然后使用for(Iterator<Map.Entry<xxx,xxx>> aa =a.iterator(),aa.hasNext()😉
{
Map.Entry<xxx,xxx> tmp = aa.next();
打印tmp
}
第二种方法就是调用Map.keySet()方法,返回一个Seta=xx.keyset(),然后使用for(Iterator aa = a.iterator(),aa.hasNext()😉 {
xxx tmp = aa.next();
打印tmp
}
package cn.com.collection; import java.util.*; public class TestIterator { public static void main(String[] args) { //testIteratorList(); //testIteratorSet(); testIteratorMap(); System.out.println("========"); testIteratorMap2(); } public static void testIteratorList() { List<String> list = new ArrayList<>(); list.add("小明"); list.add("小红"); list.add("小军"); for (Iterator<String> s = list.iterator(); s.hasNext(); ) { String tmp = s.next(); System.out.println(tmp); } } public static void testIteratorSet() { Set<Integer> ss = new HashSet<>(); ss.add(1); ss.add(2); ss.add(3); for (Iterator<Integer> a = ss.iterator(); a.hasNext() ;) { Integer tmp = a.next(); System.out.println(tmp); } } //遍历Map的第一种方法 public static void testIteratorMap() { //map里面有entrySet()方法会返回一个Set集合,然后遍历Set集合 Map<Integer,String> map = new HashMap<>(); map.put(100,"小军"); map.put(200,"小红"); map.put(300,"小亮"); //System.out.println(map); //调用Map的entrySet()方法 返回一个Set的集合 Set<Map.Entry<Integer,String>> aa= map.entrySet(); for (Iterator<Map.Entry<Integer,String>> a = aa.iterator();a.hasNext(); ) { Map.Entry<Integer,String> tmp = a.next(); System.out.println(tmp); } } //遍历Map的第二种方法 public static void testIteratorMap2() { Map<Integer,String> map = new HashMap<>(); map.put(1,"星期一"); map.put(2,"星期二"); map.put(3,"星期三"); //Map里面有keySet()方法获取key值,返回一个Set的集合,然后遍历Set Set<Integer> aa= map.keySet(); for (Iterator<Integer> a = aa.iterator(); a.hasNext(); ) { Integer tmp = a.next(); System.out.println(tmp+"---"+map.get(tmp)); } } }
下面是遍历集合的总结
遍历List有四种方法:for(),foreach(),Iterator()(一个是for(),一个是while())
方法一:for循环
for (int i = 0; i <list.size(); i++) { String tmp = (String) list.get(i); System.out.println(tmp); }
方法二:增强for循环
for (String tmp :list) { System.out.println(tmp); }
方法三:使用Iterator()—for循环
for (Iterator a = list.iteraor(); a.hasNext();) { String tmp = (String) a.next(); System.out.println(tmp); }
方法四:使用Iterator()—while循环
Iterator a = list.iteraor(); while(a.hasNext()) { Object o = a.next(); a.remove(); // 如果在遍历时,要删除集合中的元素,建议使用这种方式 System.out.println(o); }
遍历Set有两种方法:foreach(),Iterator()
方法一:增强for循环
for (String tmp : set) { System.out.println(tmp); }
方法二:使用Iterator()
for (Iterator a = set.iterator(); a.hasNext() ; ) { String tmp = (String) a.next(); System.out.println(tmp); }
遍历Map有两张方法:使用keySet(),使用entrySet();
方法一:keySet()
Map<Integer,String> maps = new HashMap<>(); Set<Integer> a = maps.keySet(); for (Iterator<Integer> ite = a.iterator();ite.hasNext(); ) { Integer tmp = ite.next(); System.out.println(tmp); }
方法二:entrySet()
Map<Integer,String> maps = new HashMap<>(); Set<Map.Entry<Integer,String>> mm = maps.entrySet(); for (Iterator<Map.Entry<Integer,String>>nn = mm.iterator();nn.hasNext(); ) { Map.Entry<Integer,String> tmp = nn.next(); System.out.println(tmp); }
相关文章推荐
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- map集合的4种遍历方法和List集合的2种遍历和迭代器Iterator的使用
- java学习笔记之使用Iterator迭代器遍历容器元素(List/Set/Map) 2019/5/9
- vector,map各种容器类型的使用方法总结
- 遍历list时删除某些情况下的元素,使用迭代器Iterator
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- list、map、set遍历方法总结
- java基础知识5--集合类(Set,List,Map)和迭代器Iterator的使用
- set容器元素的插入和中序遍历,反向遍历,反向迭代器reverse_iterator和rbegin(),rend();
- java中list、set、map的各种遍历方法
- C++ STL容器的使用方法(vector、queue、list、set、map)
- 容器迭代器遍历List、Set、Map的用法实例
- Java中容器[Collection(List,Set,Queue),Map],迭代器(Iterator)和比较器(Comparator)及列表排序
- java中List、Set、Map集合的遍历方法总结
- list,set,map的遍历及迭代器的使用
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- java中List、Set、Map集合的遍历方法总结