首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >遍历HashMap

遍历HashMap

作者头像
故里
发布于 2020-11-25 15:45:22
发布于 2020-11-25 15:45:22
1.2K0
举报
文章被收录于专栏:故里学Java故里学Java

HashMap遍历主要有四类方法:

  • 迭代器方式遍历
  • For Each方式遍历
  • Lambda表达式遍历
  • Streams API遍历

其中迭代器、For Each、Streams API又有不同的实现(EntrySet和KeySet),所以有四类七种方式实现

1、迭代器EntrySet方式遍历

代码语言:javascript
复制
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方式遍历

代码语言:javascript
复制
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方式遍历

代码语言:javascript
复制
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方式遍历

代码语言:javascript
复制
public void forEachKeySet(Map<Integer,String> map) {
    for (Integer key : map.keySet()) {
        System.out.println(key + "===" + map.get(key));
    }
}

5、Lambda表达式遍历

代码语言:javascript
复制
public void lambdaforMap(Map<Integer,String> map) {
    map.forEach((key,value) -> {
        System.out.println(key + "===" + value));
    });
}

6、Streams API 单线程方式

代码语言:javascript
复制
public void streamsApiOne (Map<Integer,String> map) {
  map.entrySet().stream().forEach((entry) -> {
    System.out.println(entry.getKey() + "====" + entry.getValue());
  });
}

7、Streams API 多线程

代码语言:javascript
复制
public void streamsApiMore(Map<Integer,String> map) {
    map.entrySet().parallelStream().forEach((entry) -> {
        System.out.println(entry.getKey() + "====" + entry.getValue());
    });
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档