请教Java怎么实现两个集合求并集?

chuyuan 2010-12-04 12:00:08
Java里面怎么实现下面的功能?
输入:
集合1: 集合2:
1001001 1001002
1001002 1001003
1001003 1001007
1001004 1001008
1001006 1001002
1001003
输出:
1001001
1001002
1001003
1001004
1001006
1001007
1001008
我知道C++里面std::set就直接可以insert就可以自动去除重复记录的,不知道Java里面有没有类似组件或者类什么的?
如果没有,有什么好的去重复的算法?如果集合里面每个值都是(1001002,1 ),(1001002,2)这种组合形式,又怎么实现?
...全文
673 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2010-12-05
  • 打赏
  • 举报
回复
使用set<int> a = new TreeSet<int>();
set<int> b = new TreeSet<int>();
然后b.addAll(a)即可去重加入得到新的b
deyingzh 2010-12-05
  • 打赏
  • 举报
回复
使用集合框架来操作就可以了,集合框架中有很多关于集合操作的接口和类,比如说ArrayList,Set等等。
public class setunion(){
public static void main(){
ArrayList a = new ArrayList();
ArrayList b = new ArrayList();
a.add("1001001");a.add("1001002");a.add("1001003");
a.add("1001004");a.add("1001006");
b.add("1001002");b.add("1001003");b.add("1001007");
b.add("1001008");b.add("1001002");
for(int i =0;i<b.size();i++)
{
if(a.contains(b.get(i))
a.remove(b.get(i));
else
a.add(b.get(i));
}
}
}
mopishv0 2010-12-04
  • 打赏
  • 举报
回复
打错了 是接口
mopishv0 2010-12-04
  • 打赏
  • 举报
回复
JAVA中也有SET借口 及其几种实现
genglukuan 2010-12-04
  • 打赏
  • 举报
回复
可以用一个for循环进行判断,如果没有就添加到集合里,如果有就return,可以这样写
int []a ={1001,1003}
int []b ={1002,1004}
for(int i=0;i<a.length;i++){
if(a.contain(b[i])){
return ;
}else{
a.[a.length+1]=b[i]
}
}
数组应该有个判断是否包含的方法,我记不太清了,你找一下用快捷键

mengfeng841024 2010-12-04
  • 打赏
  • 举报
回复
java也提供几种集合,个人感觉java提供的集合比C++提供的集合更加好操作
threeswordmin9 2010-12-04
  • 打赏
  • 举报
回复
你可以放到集合SET里,然后你就往里面放元素,是重复的自动就给你删除了,就给你留一个

58,454

社区成员

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

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