我有一个ConcurrentMap,我想从中获取一个List,其中String与最大的Integer映射在一起,第二大的映射在第二个位置,以此类推。
目前我的做法类似于以下步骤: 1. 循环遍历map的keySet 2. 在该循环内,再循环遍历已排序的List 3. 保持循环,直到key String对应的值小于“sorted” List的第i个元素,并插入它。
现在这个方法可以工作,但我怀疑它不是很有效率。Java 8有任何内置的排序算法可以帮助我吗?
目前我的做法类似于以下步骤: 1. 循环遍历map的keySet 2. 在该循环内,再循环遍历已排序的List 3. 保持循环,直到key String对应的值小于“sorted” List的第i个元素,并插入它。
现在这个方法可以工作,但我怀疑它不是很有效率。Java 8有任何内置的排序算法可以帮助我吗?
HashMap
,因为键的顺序基于哈希函数,而是使用TreeMap
- 因此在将它们插入到映射时,键实际上是排序的。然后,我可以遍历已按其值排序的键,获取与该整数键匹配的字符串列表,并将其连接到主字符串列表中,这就是您需要的最终列表。 - SomethingSomething