텍스트의 문자 발생 수를 저장하는 해시 맵이 있습니다. 상위 3 번 항목을 인쇄하려고하는데 잘못 인쇄됩니다.해시 맵 상위 3 개 키 가져 오기
List<Entry<Character, Integer>> top3 = map.entrySet().stream()
.sorted(comparing(Entry::getValue, reverseOrder()))
.limit(3)
.collect(toList());
(*) 다음과 같은 수입과 :
import static java.util.Comparator.comparing;
import static java.util.Comparator.reverseOrder;
import static java.util.stream.Collectors.toList;
당신이 아래의 코드 (*)를 사용할 수있는 Java 8을
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;
}
}
}
OK, 난의 LinkedHashMap로 변경,하지만 여전히 문제가 해결되지 않습니다. – fedorp1
모든 값을보고 상위 3 개를 찾고 값을 출력하려고합니까? – Ascalonian
현재 어떻게 인쇄 중인지 예를 들려 줄 수 있습니까? –