首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中将数据追加到地图

在Java中将数据追加到地图
EN

Stack Overflow用户
提问于 2011-01-06 17:22:51
回答 6查看 27.4K关注 0票数 7

我有一张地图

代码语言:javascript
运行
复制
Map<Integer, List<Object>> entireData;

现在,我使用putAll添加了一些数据,比如

代码语言:javascript
运行
复制
entireData.putAll(someData);

其中someData返回Map<Integer, List<Object>>

现在,我有另一句话说

代码语言:javascript
运行
复制
entireData.putAll(someMoreData);

这也会返回Map<Integer, List<Object>>,但是通过这样做,它会覆盖现有entireData的内容,我该如何追加呢?

EN

Stack Overflow用户

发布于 2011-01-06 17:41:26

默认情况下,Java Maps将一个键映射到一个值as trojanfoe writes。如果这还不足以满足您的需求,那么您需要一个多映射实现(从一个键映射到一个值集合的映射)。

最流行的版本可以在两个开源框架Google GuavaApache Commons / Collections中找到。

Guava示例:

代码语言:javascript
运行
复制
final Multimap<Integer, String> mmap =
    Multimaps.newSetMultimap(
        Maps.<Integer, Collection<String>> newHashMap(),
        new Supplier<Set<String>>(){

            @Override
            public Set<String> get(){
                return Sets.newHashSet();
            }
        });
mmap.put(1, "foo");
mmap.put(1, "bar");
System.out.println(mmap.get(1));

输出:

foo,bar

公共集合示例:

代码语言:javascript
运行
复制
final MultiMap mmap = new MultiHashMap();
mmap.put(1, "foo");
mmap.put(1, "bar");
System.out.println(mmap.get(1));

输出:

foo,bar

正如您所看到的,Commons Collections版本要简单得多,但它的功能也较弱,并且在当前版本中不支持Java1.5泛型。所以我会选芭乐。

票数 2
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4613386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档