我有一個HashMap,我需要按值排序,我試圖保持簡潔,所以我使用Java 8.但是各種方法不工作,我我不確定爲什麼。我已經試過這樣:在Java中按值排序Hashmap 8
followLikeCount.values()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toList());
會拋出這個編譯時異常:
Main.java:65: error: no suitable method found for sorted(Comparator<Entry<Object,V#1>>)
.sorted(Map.Entry.comparingByValue())
我不明白爲什麼有從觀察的不匹配。我也嘗試過使用比較器:
Comparator<Map.Entry<Integer, Integer>> byValue =
Map.Entry.<Integer, Integer>comparingByValue();
這會產生類似的錯誤。請你能提醒比較者爲什麼無效?
是否'值()'以鍵/值對,或者只值返回'Entry'? – markspace
啊,真的,只是值,但我不能把HashMap followLikeCount直接轉換成流。完全需要一種不同的方法嗎? – Bryn
嘗試'entrySet()'。你可以流式傳輸。 – markspace