遍历HashMap

201 阅读1分钟
原文链接: mp.weixin.qq.com

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());    });}