java求交集和并集

2025-03-04 14:59:51
推荐回答(4个)
回答1:

虽然想尽量维持你程序的原型,但是还是改的差不多了。学java注重的是面向对象的思想,建议你不要把太多精力放在这些算法上面,不能再像学习C语言那样学习java。

public class Group{
public void jiaoji(int[] a,int[] b){
for(int i=0;i for(int j=0;j if(a[i]==b[j]){
System.out.print(a[i]+",");
}
}
}
}
public void bingji(int[] a,int[] b){
for(int i=0;i System.out.print(a[i]+",");
}
for(int i=0;i boolean flag=true;
for(int j=0;j if(b[i]==a[j]){
flag=false;
}
}
if(flag){
System.out.print(b[i]+",");
}
}
}
public static void main(String[] args){
int a[]={1,2,3,4,5};
int b[]={4,5,6,7,8};
Group group=new Group();
System.out.print("交集为:");
group.jiaoji(a,b);
System.out.print("\n并集为:");
group.bingji(a,b);
}
}

回答2:

首先,集合类就要import语句,当然,不用import也行;
只要肯动脑,这一点也不难,以后不要偷懒了啊;

public class JiaoBinTest {

public static void main(String[] args) {
int[]a = {32,45,65,34,213};
int[]b = {32,45,65,23,335};
int[]bin = bin(a,b);
int[]jiao = jiao(a,b);
for(int i=0;i System.out.println(jiao[i]);
}
for(int i=0;i System.out.println(bin[i]);
}
}

public static int[] bin(int[]a,int[]b){
int count = a.length + b.length;
for(int i=0;i for(int j=0;j if(a[i] == b[j]){
count --;
}
}
}
int[]bin = new int[count];
count = 0;
for(int i=0;i bin[count ++] = a[i];
}
boolean same = false;
for(int i=0;i for(int j=0;j if(b[i] == a[j]){
same = true;
}
}
if(!same){
bin[count++] = b[i];
}
same = false;
}
return bin;
}

public static int[] jiao(int[]a,int[]b){
int count = 0;
for(int i=0;i for(int j=0;j if(a[i] == b[j]){
count ++;
}
}
}
int[]jiao = new int[count];
count = 0;
for(int i=0;i for(int j=0;j if(a[i] == b[j]){
jiao[count] = a[i];
count ++;
}
}
}
return jiao;
}
}

回答3:

import java.util.ArrayList;

public class Group {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Group g=new Group();
String[] a = {"a","b","c","d",};
String[] b = {"c","d","e","f","g",};
System.out.println("交集是:");
g.doJiaoJi(a, b);
System.out.println("\n并集是:");
g.doBingJi(a, b);

}

public void doBingJi( String[] a, String[] b){
ArrayList tmp = new ArrayList();
for(String s:b){
tmp.add(s);
}
for(String s:a){

if(!tmp.contains(s)){
tmp.add(s);
}
}
String[] c = tmp.toArray(new String[tmp.size()]);
for (String s:c){
System.out.print(s+" ");
}
}

public void doJiaoJi( String[] a, String[] b){
ArrayList tmp = new ArrayList();
for(String s:b){
for(String s2:a){
if(s.equals(s2)){
tmp.add(s);
}
}
}
String[] c = tmp.toArray(new String[tmp.size()]);
for (String s:c){
System.out.print(s+" ");
}
}

}

回答4:

处理集合交并集运算的类,实现java专门的集合类
简单实现代码如下:
package test;

import java.util.HashSet;
import java.util.Set;

public class Test {

public static void main(String[] args) {
Set result = new HashSet();
Set set1 = new HashSet(){{
add(1);
add(3);
add(5);
}};

Set set2 = new HashSet(){{
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);

}

}