赞
踩
HashMap 遍历,大体上可以分为4类:
但是每种类型下有不同的实现方式,所以又可以分为7种:
1,使用迭代器 EntrySet 的方式遍历
此方法效率最佳
- @Test
- //1,使用迭代器 EntrySet 的方式遍历
- public void demo1(){
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1,"娇娇");
- map.put(2,"娇娇1");
- map.put(3,"娇娇2");
- map.put(4,"娇娇3");
- map.put(5,"娇娇4");
- map.put(5,"娇娇5");
- //遍历
- Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
- while (iterator.hasNext()){
- Map.Entry<Integer, String> next = iterator.next();
- System.out.println(next.getKey());
- System.out.println(next.getValue());
- }
- }
结果
2,使用迭代器的KeySet
- @Test
- // 2,使用迭代器的KeySet
- public void demo1(){
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1,"娇娇");
- map.put(2,"娇娇1");
- map.put(3,"娇娇2");
- map.put(4,"娇娇3");
- map.put(5,"娇娇4");
- map.put(5,"娇娇5");
- //遍历
- Iterator<Integer> iterator = map.keySet().iterator();
- while (iterator.hasNext()){
- Integer key = iterator.next();
- System.out.print(key);
- System.out.print(map.get(key));
- }
- }
结果
3,使用 For Each EntrySet 的方式进行遍历
- @Test
- //3,使用 For Each EntrySet 的方式进行遍历;
- public void demo1(){
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1,"娇娇");
- map.put(2,"娇娇1");
- map.put(3,"娇娇2");
- map.put(4,"娇娇3");
- map.put(5,"娇娇4");
- map.put(5,"娇娇5");
- //遍历
- for (Map.Entry<Integer,String> entry: map.entrySet()
- ) {
- System.out.println("entry.getKey() = " + entry.getKey());
- System.out.println("entry.getValue() = " + entry.getValue());
- }
- }
结果
4,使用 For Each KeySet 的方式进行遍历;
- @Test
- //4,使用 For Each KeySet 的方式进行遍历;
- public void demo1(){
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1,"娇娇");
- map.put(2,"娇娇1");
- map.put(3,"娇娇2");
- map.put(4,"娇娇3");
- map.put(5,"娇娇4");
- map.put(5,"娇娇5");
- //遍历
- for (Integer key: map.keySet()
- ) {
- System.out.println(key);
- System.out.println(map.get(key));
- }
- }
结果
5,使用 Lambda 表达式的方式进行遍历
- @Test
- //5,使用 Lambda 表达式的方式进行遍历;
- public void demo1() {
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1, "娇娇");
- map.put(2, "娇娇1");
- map.put(3, "娇娇2");
- map.put(4, "娇娇3");
- map.put(5, "娇娇4");
- map.put(5, "娇娇5");
- //遍历
- map.forEach((key,value) -> {
- System.out.print(key);
- System.out.print(value);
-
-
- });
-
- }
结果
6,使用 Streams API 单线程的方式进行遍历
- @Test
- //6,使用 Streams API 单线程的方式进行遍历;
- public void demo1() {
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1, "娇娇");
- map.put(2, "娇娇1");
- map.put(3, "娇娇2");
- map.put(4, "娇娇3");
- map.put(5, "娇娇4");
- map.put(5, "娇娇5");
- //遍历
- map.entrySet().stream().forEach((integerStringEntry -> {
- System.out.println(integerStringEntry.getKey());
- System.out.println(integerStringEntry.getValue());
-
- }));
-
- }
结果
7,使用 Streams API 多线程的方式进行遍历
- @Test
- //6,使用 Streams API 单线程的方式进行遍历;
- public void demo1() {
- //创建Map 对象
- Map<Integer, String> map = new HashMap<>();
- //添加数据
- map.put(1, "娇娇");
- map.put(2, "娇娇1");
- map.put(3, "娇娇2");
- map.put(4, "娇娇3");
- map.put(5, "娇娇4");
- map.put(5, "娇娇5");
- //遍历
- map.entrySet().parallelStream().forEach((integerStringEntry -> {
- System.out.println(integerStringEntry.getKey());
- System.out.println(integerStringEntry.getValue());
-
- }));
-
- }
结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。