请问java有工具类取两个list的并集吗?
list1与list2内装有不同的信息,但也有相同的信息现在想要得是不同加入,相同只加入一个,请问java不用循环,有这样的工具类吗?那往set放呢?...
list1与list2内装有不同的信息,但也有相同的信息现在想要得是不同加入,相同只加入一个,请问java不用循环,有这样的工具类吗?
那往set放呢? 展开
那往set放呢? 展开
8个回答
展开全部
好象List的里retainAll可以完成吧,可以保留相同的元素,将不同的删除,你可以试一下,如果这个不是创建一个新的list,是在原有的list上直接修改。
list1.retainAll(list2);
这样处理后,list1就是处理过的。
看成交集了,失败。。。
并集的话直接把两个的数据都放到一个Set集合里就行了
Set set = new HashSet();
set.addAll(list1);
set.addAll(list2);
这样set里保存的数据就是你要的结果
list1.retainAll(list2);
这样处理后,list1就是处理过的。
看成交集了,失败。。。
并集的话直接把两个的数据都放到一个Set集合里就行了
Set set = new HashSet();
set.addAll(list1);
set.addAll(list2);
这样set里保存的数据就是你要的结果
展开全部
使用java集合(包括但不限于List)类可方便地计算两个集合的交集、并集、差集等,以下是详细代码:
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> result = new HashSet<Integer>();
Set<Integer> set1 = new HashSet<Integer>(){{
add(1);
add(3);
add(5);
}};
Set<Integer> set2 = new HashSet<Integer>(){{
add(1);
add(2);
add(3);
}};
result.clear();
result.addAll(set1);
result.retainAll(set2);
System.out.println("交集:"+result);
result.clear();
result.addAll(set1);
result.removeAll(set2);
System.out.println("差集:"+result);
result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.println("并集:"+result);
}
}
针对题目中关于List的应用,只需要在代码中将输入集合改为list即可
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> result = new HashSet<Integer>();
Set<Integer> set1 = new HashSet<Integer>(){{
add(1);
add(3);
add(5);
}};
Set<Integer> set2 = new HashSet<Integer>(){{
add(1);
add(2);
add(3);
}};
result.clear();
result.addAll(set1);
result.retainAll(set2);
System.out.println("交集:"+result);
result.clear();
result.addAll(set1);
result.removeAll(set2);
System.out.println("差集:"+result);
result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.println("并集:"+result);
}
}
针对题目中关于List的应用,只需要在代码中将输入集合改为list即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做不到的啊 求并集必须要求能够比对两个集合之间的任意两个元素是否相同,但是list里是能存任意种类的对象的,这些对象是否相同的代码通常都得你自己实现(除了一些内定的,比如String等),而且list也不会调用这个比对方法,List是可以存入重复记录的,不像Set
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似没有, 但是你可以自己写一个这样的工具类, 一劳永逸.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你具体 的业务需求是什么(可不可以重复的什么 等等)
可以自己写个类我帮你写个很简单的
public class ListUtil {
public static List sameList(List list1,List list2){
if (list1==null||list2==null) {
return null;
}else {
List returnList=new ArrayList();
for (Object o1 : list1) {
for (Object o2 : list2) {
if (o1.equals(o2)) {
returnList.add(o1);
continue;
}
}
}
return returnList;
}
}
}
可以自己写个类我帮你写个很简单的
public class ListUtil {
public static List sameList(List list1,List list2){
if (list1==null||list2==null) {
return null;
}else {
List returnList=new ArrayList();
for (Object o1 : list1) {
for (Object o2 : list2) {
if (o1.equals(o2)) {
returnList.add(o1);
continue;
}
}
}
return returnList;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询