Java 列表交叉点

Java 列表交叉点,java,arrays,list,intersection,Java,Arrays,List,Intersection,给定两个不重复的整数列表。两个列表的交集是两个列表中的整数列表,当我运行我的程序时,输出是错误的,有人能帮我找出哪里出了问题吗 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.leng

给定两个不重复的整数列表。两个列表的交集是两个列表中的整数列表,当我运行我的程序时,输出是错误的,有人能帮我找出哪里出了问题吗

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);
    }
}
公共类列表\u交叉点{
公共int[]交叉口(int[]tab1,int[]tab2){
int[]结果=新的int[7];
int k=0;
for(int i=0;i
应该是

    List_intersection a= new List_intersection();

您的
列表\u交集中的逻辑。交集
似乎是正确的。

此代码的结果将是[4,7,13,0,0,0]。我认为这是正确的,零除外。如果结尾0错误,请重新实例化大小为k的数组并复制所有有效成员


检查,您似乎在
main
中实例化了一个不同的类。另外,print语句不会按原样打印数组的内容。请使用
for
循环打印数组成员。

我认为问题在于您不能
System.out.println
数组

可以使用循环打印出数组的内容

System.out.print(" l'intersection est : ");
for (int i=0; i<7; i++) {
  System.out.print(res[j]);
}
System.out.print(“l'intersection:”);

对于(int i=0;i
a
类型为
intersection\u Union
您发布的代码用于类
List\u intersection
返回固定长度数组“result”可能会导致在结果中返回额外的零(如果相交元素少于7个)。它还将通过数组越界异常(超过7个inters)正在筛选元素。使用ArrayList或对修剪为所需大小的新结果数组执行arraycopy。
System.out.print(" l'intersection est : ");
for (int i=0; i<7; i++) {
  System.out.print(res[j]);
}