列出交叉点

时间:2014-05-18 05:17:41

标签: 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.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);
    }
}

3 个答案:

答案 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]);
}