Java Concurrenthashmap

时间:2010-08-31 19:17:08

标签: java

我想将ConcurrentHashMap转换为TreeMap。我能这样做吗?

3 个答案:

答案 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(...));