Ⅰ 请问java有工具类取两个list的并集吗
好象List的里retainAll可以完成吧,可以保留相同的元素,将不同的删除,你可以试一下,如果这个不是创建一个新的list,是在原有的list上直接修改。
list1.retainAll(list2);
这样处理后,list1就是处理过的。
看成交集了,失败。。。
并集的话直接把两个的数据都放到一个Set集合里就行了
Set set = new HashSet();
set.addAll(list1);
set.addAll(list2);
这样set里保存的数据就是你要的结果
Ⅱ java 怎么设计一个set类 然后new两个set对象 进行交集 并集 求代码
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class MySet {
public static void main(String[] args) {
Set set1 = new TreeSet();
set1.add("aa");
set1.add("bb");
set1.add("CC");
Set set2 = new TreeSet();
set2.add("aa");
set2.add("eeff");
Set unionSet = MySet.union(set1, set2);
Set intersectionSet = MySet.intersection(set1, set2);
printSet(unionSet);
System.out.println("-----------------------------");
printSet(intersectionSet);
}
private static void printSet(Set set) {
Iterator ite = set.iterator();
while(ite.hasNext()){
System.out.println(ite.next().toString());
}
}
public static Set union(Set set1, Set set2){
Set set = new TreeSet();
set.addAll(set1);
set.addAll(set2);
return set;
}
public static Set intersection(Set set1, Set set2){
Set set = new TreeSet();
if(set1.size() > set2.size()){
set.addAll(set2);
}else{
set.addAll(set1);
}
Iterator ite = set.iterator();
while(ite.hasNext()){
Object obj = ite.next();
if(!(set1.contains(obj) && set2.contains(obj))){
set.remove(obj);
}
}
return set;
}
}
--------------------------
CC
aa
bb
eeff
-----------------------------
aa
Ⅲ 有集合A={1,2,3,4},和B={1,2,5,6},用JAVA语言编写一个应用程序输出A和B的交集,并集和差集
//交集
String []a={"1"灶宴,"2","3","4","乎橡7","8"};
String []b={"1","2","5","6","9","8"};
for(int i=0;i<隐顷银a.length;i++){
for(int j=i;j<b.length;j++){
if(a[i]==b[j]){
System.out.print(b[j]);
}
}
}
}
Ⅳ java学习中,怎么求交集和并集
publicstaticvoidtest3(){
Set<String>cc=newHashSet<String>();
cc.add("2");
cc.add("a");
cc.add("b");
cc.add("x");
Set<String>dd=newHashSet<String>();
dd.add("b");
dd.add("1");
dd.add("2");
dd.add("3");
dd.add("a");
Set<String>ff=newHashSet<String>();
ff.addAll(cc);
ff.addAll(dd);
System.out.println(ff.toString());
}
这是并集
Ⅳ java求交集和并集
处理集合交并集运算的类,实现java专门的集合类
简单实现代码如下:
package test;
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.addAll(set2);
System.out.println("并集:"+result);
}
}
Ⅵ 用java编写程序,求集合的并集、交集和差集
publicstaticvoidmain(String[]args){
Integer[]A={1,2,3,4};
Integer[]B={1,3,7,9,11};
List<Integer>listA=Arrays.asList(A);
List<Integer>listB=Arrays.asList(B);
List<Integer>jiaoji=newArrayList<Integer>();
for(Integera:listA){
if(listB.contains(a)){
jiaoji.add(a);
}
}
System.out.println(jiaoji);
List<Integer>bingji=newArrayList<Integer>();
for(Integera:listA){
if(!bingji.contains(a)){
bingji.add(a);
}
}
for(Integerb:listB){
if(!bingji.contains(b)){
bingji.add(b);
}
}
System.out.println(bingji);
List<Integer>chaji=newArrayList<Integer>();
for(Integera:listA){
if(!listB.contains(a)){
chaji.add(a);
}
}
System.out.println(chaji);
}
Ⅶ java集合求差值和并集!
差集
ArrayList<String> stuList = new ArrayList<String>();
stuList.add("aa");
stuList.add("bb");
stuList.add("cc");
stuList.add("dd");
ArrayList<String> stuList2 = new ArrayList<String>();
stuList2.add("bb");
stuList2.add("cc");
stuList2.add("ee");
stuList2.add("ff");
for (String s : stuList2) {
if (stuList.contains(s)) {
stuList.remove(s);
} else {
stuList.add(s);
}
}
System.out.println(stuList2);
合集
ArrayList stuList = new ArrayList();
stuList.add("aa");
stuList.add("bb");
stuList.add("cc");
stuList.add("dd");
ArrayList stuList2 = new ArrayList();
stuList2.add("bb");
stuList2.add("cc");
stuList2.add("ee");
stuList2.add("ff");
Set set=new HashSet();
for (Object object : stuList) {
set.add(object);
}
for (Object object : stuList2) {
set.add(object);
}
System.out.println(set);
Ⅷ 请教Java怎么实现两个集合求并集
可以用一个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]
}
}
数组应该有个判断是否包含的方法,我记不太清了,你找一下用快捷键