如何做到这一点:
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
组合它们?
谢谢@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();