代码之家  ›  专栏  ›  技术社区  ›  aviraldg Ortiga

有更好的方法来映射映射值与Java流吗?[关闭]

  •  0
  • aviraldg Ortiga  · 技术社区  · 6 年前

    基本上,一种更好的写作方式:

    Map<String, String> originalMap = getMapOfValues();
    Map<String, String> newMap = originalMap.entrySet()
        .stream()
        .map(entry ->
            Maps.immutableEntry(entry.getKey(), mapValue(entry.getValue()))
        ).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue);
    

    ( Maps.immutableEntry 是番石榴的一种方法)

    2 回复  |  直到 6 年前
        1
  •  8
  •   Eran    6 年前

    为什么需要将条目映射到 Maps.immutableEntry() ?你可以跳过这一步:

    Map<String, String> originalMap = getMapOfValues();
    Map<String, String> newMap = 
        originalMap.entrySet()
                   .stream()
                   .collect(Collectors.toMap(Map.Entry::getKey,
                                             entry -> mapValue(entry.getValue())));
    
        2
  •  3
  •   isnot2bad    6 年前

    不使用流,您可以执行以下操作:

    Map<String, String> originalMap = getMapOfValues();
    Map<String, String> newMap = new HashMap<>(originalMap);
    newMap.replaceAll((key, value) -> mapValue(value));