-
写在前面的话
近期听到朋友面试的时候有被问到这些知识点,可能我们在实际开发中会用到,但是一到面试的时候就卡住了,有点忘了,今天就记录下。供大家参考
-
遍历Map集合
遍历Map我们会用到迭代器—Iterator
Map<String,Object> paramMap=new HashMap<>(); paramMap.put("name","小白"); paramMap.put("age","23"); Iterator<Map.Entry<String,Object>> iterator=paramMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String,Object> entry=iterator.next(); System.out.println(entry.getKey()+"----"+entry.getValue()); }
运行结果为:
name----小白 age----23
-
List集合存储Map进行遍历
前面我门已经掌握了如何遍历Map集合,输出键值对。那么我们将Map储存在List集合中进行遍历的话,只需要在遍历Map集合的外面加上一层List集合的遍历就可以了。
List<Map<String,Object>> mapList=new ArrayList<>(); Map<String,Object> param1=new HashMap<>(); Map<String,Object> param2=new HashMap<>(); param1.put("name","张三"); param1.put("age",20); param2.put("name","李四"); param2.put("age",23); mapList.add(param1); mapList.add(param2); //lamda表达式 mapList.forEach(a->{ Iterator<Map.Entry<String,Object>> iterator=a.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Object> entry = iterator.next(); System.out.println(entry.getKey()+"---"+entry.getValue()); } }); //原生foreach for(Map<String,Object> map:mapList){ Iterator<Map.Entry<String,Object>> iterator=map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Object> entry = iterator.next(); System.out.println(entry.getKey()+"---"+entry.getValue()); } } }
输出的结果为:
name---张三 age---20 name---李四 age---23
-
Map集合中储存值为List遍历
前面我们已经掌握了遍历Map,遍历List集合储存Map,那现在我们来看看如何变量Map集合中储存List。其实也就是换个顺序,这次我们先遍历Map,如何再遍历List。
Map<String,List<String>> paramMap=new HashMap<>(); List<String> list=new ArrayList<>(); list.add("李四"); list.add("22"); List<String> list1=new ArrayList<>(); list1.add("王五"); list1.add("25"); paramMap.put("one",list); paramMap.put("two",list1); Iterator<Map.Entry<String,List<String>>> iterator=paramMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String,List<String>> entry=iterator.next(); List<String> reList=entry.getValue(); System.out.println("key-----"+entry.getKey()); for (String result: reList){ System.out.println(result); } }
结果如下:
key-----one 李四 22 key-----two 王五 25