判断List>中set是否有交集 有的话就取并集 返回合并后的List 集合
java多个集合之间如果有交集就合并, 然后返回合并后的list
现在有List<Set<String>> list 集合
Set<Integer> set1 = new HashSet<Integer>() {{
add(1);
add(3);
add(4);
}};
Set<Integer> set2 = new HashSet<Integer>() {{
add(1);
add(2);
add(3);
}};
...
set3
set4
list.add(set1);
list.add(set2);
list.add(set3);
list.add(set4);
...
现在的需求是 判断list中的set是不是相互有交集, 只要有一个相同元素的set 就合并取并集放到newSet1 中 最后期望返回的是合并后的List<newSet>
请大佬指教, 有什么好的算法可以实现
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接求重复算了,简单明了
楼上貌似不太符合题主的意思,楼上只是把两个set合并,那完全不需要那么复杂啊:
one.addAll(two);
题主的意思是Set列表中只要两个Set中存在重复就合并,否则不合并,说说我的思路:
1、首先按Set的size降序排序;
2、然后两两比较,存在重复就合并(并将被合并的Set删除),否则继续;
实现代码如下:
觉得有用就直接拷走吧,有问题可以沟通,望采纳!