给出两个没有重复的整数列表。两个列表的交集是两个列表中的整数列表,当我运行我的程序时输出错误,任何人都可以帮我弄清楚我搞砸了哪里
public class List_intersection {
public int [] Intersection (int [] tab1, int []tab2) {
int [] result = new int [7];
int k = 0;
for (int i=0; i< tab1.length; i++) {
for (int j=0; j<tab2.length; j++)
if(tab1[i]==tab2[j])
result[k++]=tab1[i];
}
return result;
}
public static void main(String[] args){
intersection_Union a= new intersection_Union ();
int [] tab1= { 4, 7, 12, 6, 17, 5 , 13};
int [] tab2= { 7, 19, 4, 11, 13, 2, 15};
int [] res = new int [7];
res=a.Intersection(tab1, tab2);
System.out.println(" l'intersection est : " + res);
}
}
答案 0 :(得分:1)
这个
intersection_Union a= new intersection_Union();
应该是
List_intersection a= new List_intersection();
List_intersection.Intersection
中的逻辑似乎是正确的。
答案 1 :(得分:1)
此代码的结果为[4,7,13,0,0,0,0]。我认为这是正确的,零排除。如果结尾0是错误的,则重新实例化大小为k的数组并复制所有有效成员。
检查,您似乎在main
中实例化了另一个班级。此外,print语句不会打印数组的内容。使用for
循环打印数组成员。
答案 2 :(得分:1)
我认为问题是你不能System.out.println
数组。
您可以使用循环打印出数组的内容。
System.out.print(" l'intersection est : ");
for (int i=0; i<7; i++) {
System.out.print(res[j]);
}