首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-06 17:24:03

Java Map Class Reference的第一行:

将键映射到值的对象。映射不能包含重复的键;每个键最多只能映射到一个值。

票数 8
EN

Stack Overflow用户

发布于 2011-01-06 17:29:44

你需要一个来自Google GuavaMultimap。使用Guava Multimap重写示例:

代码语言:javascript
运行
复制
ListMultimap<Integer, Object> entireData = ArrayListMultimap.create();

entireData.get(key)返回一个List<Object>putAll不会覆盖旧的键,但会将这些键的值附加到现有值中。这也比自己处理初始化List实例要好得多。

票数 6
EN

Stack Overflow用户

发布于 2011-01-06 17:30:22

代码语言:javascript
运行
复制
for (Integer key : someMoreData.keySet())
{
    if (entireData.containsKey(key))
    {
        entireData.get(key).addAll(someMoreData.get(key));
    }
    else
    {
        entireData.put(key, someMoreData.get(key));
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4613386

复制
相关文章

相似问题

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