gpt4 book ai didi

java - 反向迭代 ConcurrentSkipListMap

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:08:14 25 4
gpt4 key购买 nike

我有一张带有一些值的 map 。

public ConcurrentMap<Long, Double> data = new ConcurrentSkipListMap<>();

我如何反向迭代它? Java 迭代器似乎没有 next() 函数或反转映射的函数。

最佳答案

ConcurrentSkipListMap 实现了 ConcurrentNavigableMap,它有一个 descdendingMap()方法返回此 map 的反向排序 View :

Iterator<Entry<Long, Double>> reversed = data.descendingMap().entrySet().iterator();

但是,CSLM 反向迭代器比直接迭代器慢很多(每个 next() 的 O(log N) vs O(1))因此应该使用仅在很少需要时。否则考虑使用“反向”自定义比较器创建 map :

data = new ConcurrentSkipListMap<>((k1, k2) -> Long.compare(k2, k1));

关于java - 反向迭代 ConcurrentSkipListMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com