java求交集
A. java求兩個數組交集中元素的個數
import java.util.Scanner;
public class JiaoJi {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int set1_length=in.nextInt();
int set1[]=new int[set1_length];
for(int count1=0;count1<set1_length;count1++) {
set1[count1]=in.nextInt();
}
int set2_length=in.nextInt();
int set2[]=new int[set2_length];
int number=0;
for(int count2=0;count2<set2_length;count2++) {
set2[count2]=in.nextInt();
for (int count1=0; count1<set1_length;count1++) {
if(set1[count1]==set2[count2]) number++;
}
}
in.close();
if (number==0) System.out.println("None");
else System.out.println(number);
}
}
B. 再問一下關於:java中兩個數組的交集怎麼求
空間換時間,先創建Map集合Map<T,Integer> map,然後遍歷第一個數組,調用map.put(T,1),然後遍歷第二個數組的每個元素T,如果map.get(T) != null,則說明該元素為兩個數組的交集,否則不是。
C. 用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);
}
D. Java裡面如何求兩個集合的交集
用Collection提供的retainAll方法,如下是測試代碼:
import java.util.*;
public class TestList1{
public static void main(String[] args){
List list1=new ArrayList();
list1.add("A");list1.add("B");list1.add("C");
List list2=new ArrayList();
list2.add("B");list2.add("C");list2.add("D");
list1.retainAll(list2);
System.out.println(「交集為:」+list1);
}
}
//測試:
//交集為:[B, C]
E. java程序,給定的兩個數組求交集,我知道用兩個 for循環可以得到這些數
publicclassIntersection{
publicstaticvoidmain(String[]args){
//給定兩個數組
int[]as={1,5,8,9,4,6};
int[]bs={5,7,3,2};
//記錄相同的元素(String類型方便下面判斷)
String[]cs=newString[as.length>bs.length?as.length:bs.length];//長度不超過上麥年量數組中最大長度
//循環比較
for(inti=0;i<as.length;i++){
intflag=0;//有相同元素標記
for(intj=0;j<bs.length;j++){
if(bs[j]==as[i]){
flag=flag+1;
}
}
intplace=0;//記錄cs數組已經有幾個元素
for(Stringj:cs){
place=0;
if(j!=null&&j!=""){
place=place+1;
}
}
if(flag!=0){
cs[place]=as[i]+"";
}
}
//循環輸出交集數組
for(Stringi:cs){
if(i!=null){
System.out.println(i);
}
}
}
}
F. JAVA怎麼取多個List集合的交集
1、把多個list放到一個list中,生成 List<List<Object>>結構
2、遍歷list,使用java8的規約操作,兩兩求交集
list.stream().rece((list1,list2) -> { list1.retainAll(list2); return list1;}).orElse(emptyList());
G. java求交集和並集
雖然想盡量維持你程序的原型,但是還是改的差不多了。學java注重的是面向對象的思想,建議你不要把太多精力放在這些演算法上面,不能再像學習C語言那樣學習java。
public class Group{
public void jiaoji(int[] a,int[] b){
for(int i=0;i<a.length;i++){
for(int j=0;j<b.length;j++){
if(a[i]==b[j]){
System.out.print(a[i]+",");
}
}
}
}
public void bingji(int[] a,int[] b){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
for(int i=0;i<b.length;i++){
boolean flag=true;
for(int j=0;j<a.length;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);
}
}
H. java 求三個數組的交集
其實可以參考一樓的。
// 求兩個數組的交集
public static void intersect(Double[] arr1, Double[] arr2, Double[] arr3) {
for (Double str : arr1) {
if(Arrays.asList(arr2).contains(str) && Arrays.asList(arr3).contains(str)){
System.out.println(str);
}
}
}
public static void main(String[] args) {
Double[] arrayA = new Double[]{1d,2d,3d,4d,5d};
Double[] arrayB = new Double[]{1d,2d,7d,8d,9d};
Double[] arrayC = new Double[]{1d,2d,3d,4d,9d};
intersect(arrayA, arrayB, arrayC);
}
I. java 求交集 並集 差集
import java.util.*;
public class ArrayTest {
public static void main(String[] args) {
int[] a = {1,6,4,5,2,3,};
int[] b = {2,3,4,56,7,8,99};
int[] t = ArrayTest.並集(a, b);
for(int i:t)System.out.print(i+" ");
System.out.println();
t = ArrayTest.交集(a, b);
for(int i:t)System.out.print(i+" ");
}
static int[] 並集(int[] a,int[] b){
Arrays.sort(a);
Arrays.sort(b);
int[] t = new int[a.length];
System.array(a,0,t,0,t.length);
out:
for(int i:b){
for(int j:a){
if(i==j)continue out;
}
t=putInt(t,i);
}
Arrays.sort(t);
return t;
}
static int[] 交集(int[] a,int[] b){
Arrays.sort(a);
Arrays.sort(b);
int[] t = new int[0];
for(int i:a){
for(int j:b){
if(i==j){
t=putInt(t,i);
break;
}
}
}
return t;
}
static int[] putInt(int[] a,int i){
int[] t = new int[a.length+1];
System.array(a, 0,t,0,a.length);
t[a.length]=i;
return t;
}
}
//做了交集,並集,差集自己想吧