Java Stream 将 HashMap 转换为 ArrayList<String>,使用 String.format 连接 Key 和 % Value

问题描述 投票:0回答:1

如何做到这一点:

int size = ...
var a = new ArrayList<String>();
for (Map.Entry<String,Integer> e : myHashMap) {      
  a.add( String.format("%s %.3f", e.getKey(), 100.0 * e.getValue() / size));
}

使用

Stream

int size = ...
var a = myHashMap.entrySet()     
  .stream()
  .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
  .map(Map.Entry::getValue)
  .toList();

如何同时使用

getValue
getKey
并使用
String.format
组合它们?

java dictionary hashmap java-stream
1个回答
0
投票

谢谢@Sweeper 如果您已经找到答案,那总是很明显的。

    int size = ...
    myHashMap.entrySet()
      .stream()
      .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
      .map(e -> String.format("%s %.3f", e.getKey(), 100.0 * e.getValue() / size))
      .toList();
© www.soinside.com 2019 - 2024. All rights reserved.