好象List的里retainAll可以完成吧,可以保留相同的元素,将不同的删除,你可以试一下,如果这个不是创建一个新的list,是在原有的list上直接修改。
list1retainAll(list2);
这样处理后,list1就是处理过的。
看成交集了,失败。。。
并集的话直接把两个的数据都放到一个Set集合里就行了
Set set = new HashSet();
setaddAll(list1);
setaddAll(list2);
这样set里保存的数据就是你要的结果
removeAll
举个例子
public static void main(String[] args) {List list1 = new ArrayList();
list1add("1111");
list1add("2222");
list1add("3333");
List list2 = new ArrayList();
list2add("3333");
list2add("4444");
list2add("5555");
// 并集
// list1addAll(list2);
// 交集
// list1retainAll(list2);
//差集
list1removeAll(list2);
// 无重复并集
// list2removeAll(list1);
// list1addAll(list2);
Iterator<String> it = list1iterator();
while (ithasNext()) {
Systemoutprintln(itnext());
}
// Systemoutprintln("-----------------------------------\n");
// printStr(list1);
}
public static void printStr(List list1) {
for (int i = 0; i < list1size(); i++) {
Systemoutprintln(list1get(i));
}
}
假如两个线性表listA和listB。新建空线性表listC;然后,依次取listA中的元素与listB中每一个元素相比,将相同的追加到listC;最后得到的listC就是listA和listB的交集了~(线性表的存储结构不同,实现也不同,大概就这样吧~)
有两种方法可以做这个一,把2、3、4编组,然后全选1跟刚才那个编组,按住ALT点击路径查找器中的“交集”按钮,再点路径查找器中的“扩展”,就会得到abc二,就是用分割按钮,解散编组后,删除没用的,也会得到abc,正如楼上所说的。
以上就是关于请问java有工具类取两个list的并集吗全部的内容,包括:请问java有工具类取两个list的并集吗、两个List<对象>集合 A集合中包含了B集合中的对象和其他对象。现在想从A中把B去掉要剩下的对象 怎么取出、用C语言求线性表交集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)