请教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)这种组合形式,又怎么实现?
...全文
520 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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里,然后你就往里面放元素,是重复的自动就给你删除了,就给你留一个
回复
相关推荐
发帖
Eclipse
创建于2007-09-28

5.8w+

社区成员

Java Eclipse
申请成为版主
帖子事件
创建了帖子
2010-12-04 12:00
社区公告
暂无公告