zoukankan      html  css  js  c++  java
  • jdk8Map操作,compute,computeIfPresent,merge方法

    比如,统计出现的次数

    List<String> animals = Arrays.asList("dog", "cat", "cat", "dog", "fish", "dog");
    

      方法一:

    Map<String, Integer> map = new HashMap<>();
            for (String animal : animals) {
                map.compute(animal, (k, v) -> v == null ? 1 : ++v);
            }
    

      方法二:

    Map<String, Integer> map1 = new HashMap<>();
            for (String animal : animals) {
                map1.putIfAbsent(animal, 0);
                map1.computeIfPresent(animal, (k, v) -> ++v);
            }
    

      方法三:

    Map<String, Integer> map2 = new HashMap<>();
            for (String animal : animals) {
                map2.putIfAbsent(animal, 0);
                map2.merge(animal, map2.get(animal), (k, v) -> ++v);
            }
    

      输出结果如下

  • 相关阅读:
    16款值得一用的iPhone线框图模板 (PSD & Sketch)
    设计神器
    {CF812}
    hiho1080(多标记线段树)
    {容斥原理}
    {dp入门}
    {AC自动机}
    CF807
    Trie树
    杂记
  • 原文地址:https://www.cnblogs.com/LiuFqiang/p/15272798.html
Copyright © 2011-2022 走看看