f3d*_*d0r 0 java foreach integer character hashmap
我有一个hashmap存储文本中出现的字符数.我正在尝试打印前三次出现,但打印不正确.
int max = 1000000000;
for (int i = 1; i <= 3; i++) {
for (Character key : list.keySet()) {
if (list.get(key) < max) {
max = list.get(key);
System.out.println(i + ": " + key + " " + list.get(key));
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用Java 8,您可以使用下面的代码(*):
List<Entry<Character, Integer>> top3 = map.entrySet().stream()
.sorted(comparing(Entry::getValue, reverseOrder()))
.limit(3)
.collect(toList());
Run Code Online (Sandbox Code Playgroud)
(*)具有以下导入:
import static java.util.Comparator.comparing;
import static java.util.Comparator.reverseOrder;
import static java.util.stream.Collectors.toList;
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |