是否有该定义的并发版本Java Guava集合图

时间:2018-09-28 10:39:31

标签: java guava

此定义的番石榴收集地图是否存在并发版本?

ListMultimap<DuplicateKey,Integer> map =
    Multimaps.newListMultimap(
    Maps.<DuplicateKey, Collection<Integer>>newTreeMap(),
    new Supplier<List<Integer>>() {
        public List<Integer> get() {
            return Lists.newArrayList();
        }
    });

1 个答案:

答案 0 :(得分:2)

没有并发的多图实现,但是您可以使用Multimaps.synchronizedListMultimap视图将其包装,该视图:

  

返回由指定的多图支持的同步(线程安全)多图。

在您的情况下:

ListMultimap<DuplicateKey,Integer> synchronizedMultimap = 
    Multimaps.synchronizedListMultimap(map);

阅读complete javadoc,了解有关同步访问视图的注意事项:

  

为了保证串行访问,至关重要的是,所有对支持多图的访问都必须通过返回的多图来完成。

请注意,issue #135 on Github指出,Guava本身将没有通用的并发多地图实现。