我想对包含以下格式的数据的文本文件进行排序:
A 8
B 2
C 5
以它的价值。所以我发现了这个:
Map<String, Long> getSortedLinkedHashMappedRankingArray(String[] rankingArray) {
return Arrays
.stream(rankingArray)
.map(it -> it.split("\\s+"))
.collect(Collectors.toMap(it -> it[FIRST_PART], it -> Long.valueOf(it[SECOND_PART])))
.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
}
除了上次收集操作,我几乎理解了所有内容:
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new))
你能解释一下这里发生了什么吗?什么是oldValue和newValue以及它是如何工作的?
此外,我想听听我在collect操作前是否正确理解了部分内容。
首先,我们正在创建给定数组的流。
然后我们用空格分割数组的每个元素,这样我们就可以将name作为键和数字作为映射中的值。
然后我们创建地图元素集并创建流。
然后我们按价值排序。
对?
潇潇雨雨
凤凰求蛊
相关分类