java集合遍历方法总结!
hello!大家好我是留乘船,最近在复习java基础的集合框架,那么关于list set map三者之间的遍历方式你都知道哪几种?你最常用哪几种呢?让我来告诉你吧!
list集合:
(普通for、增强for、Iterator、forEach)
-
普通for循环遍历
List<String> list1 =new ArrayList<String>(); list1.add("张三"); list1.add("李四"); list1.add("王五"); list1.add("赵六"); for(int i=0;i<list1.size();i++) { String list=list1.get(i); System.out.println(list); }
-
增强for循环遍历
List<String> list1=new ArrayList<String>(); list1.add("张三"); list1.add("李四"); list1.add("王五"); list1.add("赵六"); for (String s: list1) { System.out.println(s); }
-
Iterator迭代器遍历
List<String> list1=new ArrayList<String>(); list1.add("张三"); list1.add("李四"); list1.add("王五"); list1.add("赵六"); //创建一个Iterator迭代器 Iterator<String> eno =list1.iterator(); while(eno.hasNext()) { String eo=eno.next(); System.out.println(eo); }
-
foreach遍历
List<String> list1=new ArrayList<String>(); list1.add("张三"); list1.add("李四"); list1.add("王五"); list1.add("赵六"); list1.forEach(number -> System.out.println(number));
set集合:
((普通for、增强for、Iterator、forEach))
-
增强for循环遍历
Set<String >set = new HashSet<>();//创建一个hashSet集合 set.add("小红");//3集合中加元素 set.add("晓明"); set.add("小军"); set.add("小王"); System.out.println("以下是使用增强for循环遍历"); for(String se:set){ System.out.print(se+" "); }
-
Iterator迭代器遍历
Set<String >set = new HashSet<>();//创建一个hashSet集合 set.add("小红");//3集合中加元素 set.add("晓明"); set.add("小军"); set.add("小王"); System.out.println("以下是使用迭代器遍历"); Iterator<String> iterator = set.iterator();//创建一个Iterator迭代器 while(iterator.hasNext()){ String els=iterator.next(); System.out.print(els+" "); }
-
foreach遍历
Set<String >set = new HashSet<>();//创建一个hashSet集合 set.add("小红");//3集合中加元素 set.add("晓明"); set.add("小军"); set.add("小王"); System.out.println("以下是使用foreach进行遍历"); set.forEach(num-> System.out.print(num+" "));
map集合:
(分为KeySet,EntrySet)
(1)keySet类
-
Iterator迭代器遍历
//通过键找值iterator迭代器方法遍历操作 Map<String,Integer> map =new HashMap<>(); map.put("张三",23); map.put("李四",24); map.put("王五",25); map.put("赵六",26); //Integer i=map.get("张三");//根据键获取值 //System.out.println(i); //获取所有的键,并把获取的键都存放在一个Set集合中 Set<String> keySet =map.keySet();//获取元素中所有的键 Iterator<String> it =keySet.iterator();//获取迭代器 while(it.hasNext()){//判断集合中是否有元素 String key =it.next(); //获取每一个键 Integer value=map.get(key);//通过键获取值 System.out.print(key+"="+value+" "); }
-
增强for循环遍历
Map<String,Integer> map =new HashMap<>(); map.put("张三",23); map.put("李四",24); map.put("王五",25); map.put("赵六",26); //使用增强for循环进行遍历操作 for(String key : map.keySet()) { //map.keySet()是所有键的集合 System.out.println(key+"="+map.get(key)); }
(2)EntrySet类
-
Iterator迭代器遍历
//使用Iterator迭代器 Map<String,Integer> map =new HashMap<>(); map.put("张三",23); map.put("李四",24); map.put("王五",25); map.put("赵六",26); map.put("邱器",27); //Map.Entry说明Entry是Map的内部接口,将键和值封装成了Entry对象,并存储在Set集合中 Set<Map.Entry<String,Integer>> entrySet=map.entrySet(); //获取每一个entry对象 // System.out.println(entrySet); Iterator<Map.Entry<String,Integer>> it =entrySet.iterator(); while(it.hasNext()) { //拿到每一个Entry对象 Map.Entry<String,Integer>en =it.next();//父类引用指向子类对象 //Entry<String,Integer> en=it.next();//直接获取的是子类对象 String key =en.getKey();//获取兼职 Integer value =en.getValue();//获取值 //System.out.println("键是:"+key+" "+"值是:"+value); System.out.println(en); }
-
增强for循环遍历
Map<String,Integer> map =new HashMap<>(); map.put("张三",23); map.put("李四",24); map.put("王五",25); map.put("赵六",26); map.put("邱器",27); //通过遍历键值对对象 for (Map.Entry<String,Integer> entry : map.entrySet()){ //通过键值对对象获取里面的键和值 System.out.println(entry.getKey() + "=" + entry.getValue()); }
以上就是集合框架中最常见的遍历方式了,那么你最喜欢用哪一种呢?