map在便利中删除元素

Map 遍历中删除元素

采用 迭代器iterator 来进行遍历操作

	HashMap<Integer,Integer> map = new HashMap();
        map.put(1, 1);
        map.put(2, 2);
        map.put(3, 3);
        map.put(4, 4);
        map.put(5, 5);
        map.put(6, 6);
        map.put(7, 7);

        // 可以试keyset   entryset  values
        // Set<Integer> integers = map.keySet();
        // Collection<Integer> values = map.values();
        Set<Map.Entry<Integer, Integer>> entries = map.entrySet();
        
        entries.forEach(e -> {
            System.out.println(e);
        });

        System.out.println("=================================");
        int i = 0;
        Iterator<Map.Entry<Integer,Integer>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Integer next = iterator.next().getKey();
            if (i++ >= 5){
                iterator.remove();
            }
        }

        map.forEach((k,v) -> System.out.println(k +""+ v));

map排序 可使用LinkedHashMap进行处理

public Map<String, Integer> sortMap(Map<String, Integer> map) {
        //利用Map的entrySet方法,转化为list进行排序
        List<Map.Entry<String, Integer>> entryList = new ArrayList<>(map.entrySet());
        //利用Collections的sort方法对list排序
        Collections.sort(entryList, (o1, o2) -> {
            //倒序处理
            return o2.getValue() - o1.getValue();
        });
        //遍历排序好的list,一定要放进LinkedHashMap,因为只有LinkedHashMap是根据插入顺序进行存储
        LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<String, Integer>();
        for (Map.Entry<String,Integer> e : entryList) {
            linkedHashMap.put(e.getKey(),e.getValue());
        }

        return linkedHashMap;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值