求解怎样把Map中相同value的key合并一起

qinbaowei 2018-12-29 02:59:25
如下图是经过之前的处理后得到的Map,key是一个对象,value是一个ArrayList


接下来想要得到如下图的结果,判断有哪些相同的List把他们的key合并在一起,我暂时想到的是再创建一个新的Map,然后逐个去循环判断,但这样不仅麻烦而且很不高效,因为本人做java的时间不长,求助各位有什么好解决的办法,或者有什么api
...全文
2104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinbaowei 2018-12-30
  • 打赏
  • 举报
回复
谢谢大家,问题解决了,用List+自定义对象,或者用新创建Map都可以,用Map可能会麻烦一点,数据不多性能影响不大
十八道胡同 2018-12-29
  • 打赏
  • 举报
回复
创建一个新map,让原来map里面的value为新map的key,这样根据这个新的key去原来的map里面找就好了

就变成
key value
list1 对象1 对象2
list2 对象3
list3 对象4
qinbaowei 2018-12-29
  • 打赏
  • 举报
回复
引用 3 楼 maradona1984 的回复:
你最终的数据结构我表示看不懂,或者存在歧义 对象1,对象2这个是拼接成一个字符串做成一个新key?那你为啥不直接说这个key就是字符串?可不是所有类型都可以直接+的 还有遍历是必不可少的,不存在麻烦一说,麻烦的是你的需求,而不是实现
我没表达清楚,key是对象,我的意思是把两个对象组合在一起,用List或者其他办法
咸哼酒家 2018-12-29
  • 打赏
  • 举报
回复
key是一个对象,最终变成List<Object>
value也是一个对象,一直是List<Object>
现在需求是value的内容相同下将key组装成集合
那么value中list必须遍历类比内存中存储的值,循环判断免不了额
还是老老实实的搞吧,其实也不麻烦,几十行代码的事

maradona1984 2018-12-29
  • 打赏
  • 举报
回复
你最终的数据结构我表示看不懂,或者存在歧义
对象1,对象2这个是拼接成一个字符串做成一个新key?那你为啥不直接说这个key就是字符串?可不是所有类型都可以直接+的

还有遍历是必不可少的,不存在麻烦一说,麻烦的是你的需求,而不是实现
zq910515 2018-12-29
  • 打赏
  • 举报
回复
Map<key,value>改成 Map<vlaue,<List<key>>>行不行?
十八道胡同 2018-12-29
  • 打赏
  • 举报
回复
创建一个新的Map,然后逐个去循环判断

我也是这么想的

其实如果数据量不大,这个思路也是可以的


62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧