HashMap遍历主要有四类方法:
-
迭代器方式遍历
-
For Each方式遍历
-
Lambda表达式遍历
-
Streams API遍历
其中迭代器、For Each、Streams API又有不同的实现(EntrySet和KeySet),所以有四类七种方式实现
1、迭代器EntrySet方式遍历
public class HashMapDemo{ public static void main(String[] args){ Map<Integer,String> map = new HashMap; map.put(1,"java"); map.put(2,"python"); map.put(3,"C"); map.put(4,"PHP"); //1、迭代器EntrySet iteratorEntrySet(map); //2、迭代器KeySet iteratorKeySet(map); //3、forEach EntrySet forEachEntrySet(map); //4、forEach KeySet forEachKeySet(map); //5、Lambda表达式遍历 lambdaforMap(map); //6、Streams API 单线程方式 streamsApiOne(map); //7、Streams API 多线程 streamsApiMore(map); } //迭代器EntrySet public void iteratorEntrySet(Map<Integer,String> map){ Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator(); while (iterator.hashNext()) { Map.Entry<Integer,String> entry = iterator.next(); System.out.println(entry.getKey() + "=====" + entry.getValue()); } }}
2、迭代器KeySet方式遍历
public void iteratorKeySet(Map<Integer,String> map){ Iterator<Integer> iterator = map.keySet().iterator(); while (iterator.hashNext()) { Integer key = iterator.next(); System.out.println(key + "=====" + map.get(key)) }}
3、ForEach EntrySet方式遍历
public void forEachEntrySet(Map<Integer,String> map) { for(Map.Entry<Integer,String> entry : map.entrySet()) { System.out.println(entry.getKey() + "=====" + entry.getValue()); }}
4、ForEach KeySet方式遍历
public void forEachKeySet(Map<Integer,String> map) { for (Integer key : map.keySet()) { System.out.println(key + "===" + map.get(key)); }}
5、Lambda表达式遍历
public void lambdaforMap(Map<Integer,String> map) { map.forEach((key,value) -> { System.out.println(key + "===" + value)); });}
6、Streams API 单线程方式
public void streamsApiOne (Map<Integer,String> map) { map.entrySet().stream().forEach((entry) -> { System.out.println(entry.getKey() + "====" + entry.getValue()); });}
7、Streams API 多线程
public void streamsApiMore(Map<Integer,String> map) { map.entrySet().parallelStream().forEach((entry) -> { System.out.println(entry.getKey() + "====" + entry.getValue()); });}