我想将ConcurrentHashMap转换为TreeMap。我能这样做吗?
答案 0 :(得分:6)
如果需要Sorted ConcurrentMap,请查看ConcurrentSkipListMap。考虑到它的复杂性,它既无阻塞又快速。更具体一点:
此类实现并发 SkipLists的变体 提供预期平均值 log(n)的时间成本 containsKey,get, 放置和删除 操作及其变体。
答案 1 :(得分:5)
ConcurrentHashMap
仍为Map
。因此,您可以像这样创建一个新的TreeMap
:
ConcurrentHashMap myMap;
...
TreeMap myTreeMap = new TreeMap( myMap );
答案 2 :(得分:2)
首先,我想指出你。你应该学会阅读java SDK documentation。
像Tangens所说,以及TreeMap API:
ConcurrentHashMAp myMap;
new TreeMap(myMap);
“请注意,此实现是 不同步。如果有多个线程 同时访问地图,并在 至少有一个线程修改了 在结构上映射,它必须是 外部同步“
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));