Java从数组的arraylist中删除重复项

Java从数组的arraylist中删除重复项,java,arrays,Java,Arrays,我试图删除数组之间的重复值,而不是数组本身 public static void main(String[] args) { int[] s1 = new int[3]; int[] s2 = new int[3]; int[] s3 = new int[3]; ArrayList<int[]> list1 = new ArrayList<int[]>(); s1[0] = 1; s1[1] = 2; s1[2]

我试图删除数组之间的重复值,而不是数组本身

public static void main(String[] args) {
    int[] s1 = new int[3];
    int[] s2 = new int[3];
    int[] s3 = new int[3];

    ArrayList<int[]> list1 = new ArrayList<int[]>();

    s1[0] = 1;
    s1[1] = 2;
    s1[2] = 3;
    s2[0] = 2;
    s2[1] = 3;
    s2[2] = 4;
    s3[0] = 5;
    s3[1] = 3;
    s3[2] = 6;
    list1.add(s1);
    list1.add(s2);
    list1.add(s3);
    //Set<int[]> hs = new HashSet<int[]>();
    list1 = new ArrayList<int[]>(new LinkedHashSet<int[]>(list1));

    // TODO code application logic here
    for (int[] strArr : list1) {
        System.out.println(Arrays.toString(strArr));
    }
}
但我想要这个:

[1, 0, 0]
[0, 0, 4]
[5, 0, 6]

但是我找不到任何关于这方面的信息,所以…

实现您所追求的目标的代码是

import java.util.*;

public class Array
{
    int[] s1 = {1,2,3};
    int[] s2 = {2,3,4};
    int[] s3 = {5,3,6};
    int[] oS1 = {1,2,3};
    int[] oS2 = {2,3,4};
    int[] oS3 = {5,3,6};

    ArrayList<int[]> list1 = new ArrayList<int[]>();
    ArrayList<int[]> list2 = new ArrayList<int[]>();

    public void compareEditArrays(int[] a, int[] b, int[] c, int[] d)
    {
        HashSet<Integer> map = new HashSet<Integer>();
        for (int i : a)
        {
            map.add(i);
        }

        for (int i : b) 
        {
            if (map.contains(i))
            {
                map.remove(i);
            } 
        }

        for (int i : c) 
        {
            if (map.contains(i))
            {
                map.remove(i);
            } 
        }

        arrayWipe(d);

        int x = 0;
        for(int t:map)
        {
            int tempInt = 0;
            int dd=0;

            for(int i:a)
            {
                if(a[dd]==t)
                {
                    tempInt = dd;
                }
                dd++;
            }

            d[tempInt] = t;
            x++;
        }
    }

    public void runCompareEdit()
    {
        compareEditArrays(oS1,oS2,oS3,s1);
        compareEditArrays(oS2,oS1,oS3,s2);
        compareEditArrays(oS3,oS1,oS2,s3);
    }

    public void arrayWipe(int[] a)
    {
        int x=0;
        for(int t:a)
        {
            a[x] = 0;
            x++;
        }
    }

    public void addDisplayFinalArrays()
    {
        System.out.println("Comparing");
        System.out.println("Old");
        list2.add(oS1);
        list2.add(oS2);
        list2.add(oS3);

        for (int[] strArr : list2) 
        {
            System.out.println(Arrays.toString(strArr));
        }

        System.out.println();
        System.out.println("New");
        list1.add(s1);
        list1.add(s2);
        list1.add(s3);

        for (int[] strArr : list1) 
        {
            System.out.println(Arrays.toString(strArr));
        }
    }


    public static void main(String[] args) 
    {
        Array a = new Array();
        a.runCompareEdit();
        a.addDisplayFinalArrays();
    }
}
import java.util.*;
公共类数组
{
int[]s1={1,2,3};
int[]s2={2,3,4};
int[]s3={5,3,6};
int[]oS1={1,2,3};
int[]oS2={2,3,4};
int[]oS3={5,3,6};
ArrayList list1=新的ArrayList();
ArrayList list2=新的ArrayList();
public void compareeditarray(int[]a,int[]b,int[]c,int[]d)
{
HashSet map=新的HashSet();
对于(int i:a)
{
地图.添加(i);
}
对于(int i:b)
{
如果(地图包含(i))
{
地图.删除(i);
} 
}
对于(int i:c)
{
如果(地图包含(i))
{
地图.删除(i);
} 
}
arrayWipe(d);
int x=0;
for(int t:map)
{
int-tempInt=0;
int-dd=0;
对于(int i:a)
{
如果(a[dd]==t)
{
tempInt=dd;
}
dd++;
}
d[tempInt]=t;
x++;
}
}
public void runCompareEdit()
{
比较数据阵列(oS1、oS2、oS3、s1);
比较数据阵列(oS2、oS1、oS3、s2);
比较数据阵列(oS3、oS1、oS2、s3);
}
公共无效阵列管道(int[]a)
{
int x=0;
for(int t:a)
{
a[x]=0;
x++;
}
}
public void addDisplayFinalArrays()
{
System.out.println(“比较”);
System.out.println(“旧”);
列表2.添加(oS1);
列表2.添加(oS2);
列表2.添加(oS3);
对于(int[]strArr:list2)
{
System.out.println(Arrays.toString(strArr));
}
System.out.println();
系统输出打印项次(“新”);
列表1.添加(s1);
列表1.添加(s2);
列表1.添加(s3);
对于(int[]strArr:list1)
{
System.out.println(Arrays.toString(strArr));
}
}
公共静态void main(字符串[]args)
{
数组a=新数组();
a、 运行compareedit();
a、 addDisplayFinalArrays();
}
}

代码有点凌乱,但我已经测试过了,它可以正常工作

所以。。。你什么都没试过,还以为我们会给你写代码?我希望发布问题的分数不超过100分。//这里的TODO代码应用程序逻辑你可能应该读一下:我已经把工作代码作为如何实现它的答案,但将来请发布你在问题中尝试过的内容。另外,如果您认为答案足够,请记住使用答案旁边的勾号将其作为答案接受:)写问题时请参考
import java.util.*;

public class Array
{
    int[] s1 = {1,2,3};
    int[] s2 = {2,3,4};
    int[] s3 = {5,3,6};
    int[] oS1 = {1,2,3};
    int[] oS2 = {2,3,4};
    int[] oS3 = {5,3,6};

    ArrayList<int[]> list1 = new ArrayList<int[]>();
    ArrayList<int[]> list2 = new ArrayList<int[]>();

    public void compareEditArrays(int[] a, int[] b, int[] c, int[] d)
    {
        HashSet<Integer> map = new HashSet<Integer>();
        for (int i : a)
        {
            map.add(i);
        }

        for (int i : b) 
        {
            if (map.contains(i))
            {
                map.remove(i);
            } 
        }

        for (int i : c) 
        {
            if (map.contains(i))
            {
                map.remove(i);
            } 
        }

        arrayWipe(d);

        int x = 0;
        for(int t:map)
        {
            int tempInt = 0;
            int dd=0;

            for(int i:a)
            {
                if(a[dd]==t)
                {
                    tempInt = dd;
                }
                dd++;
            }

            d[tempInt] = t;
            x++;
        }
    }

    public void runCompareEdit()
    {
        compareEditArrays(oS1,oS2,oS3,s1);
        compareEditArrays(oS2,oS1,oS3,s2);
        compareEditArrays(oS3,oS1,oS2,s3);
    }

    public void arrayWipe(int[] a)
    {
        int x=0;
        for(int t:a)
        {
            a[x] = 0;
            x++;
        }
    }

    public void addDisplayFinalArrays()
    {
        System.out.println("Comparing");
        System.out.println("Old");
        list2.add(oS1);
        list2.add(oS2);
        list2.add(oS3);

        for (int[] strArr : list2) 
        {
            System.out.println(Arrays.toString(strArr));
        }

        System.out.println();
        System.out.println("New");
        list1.add(s1);
        list1.add(s2);
        list1.add(s3);

        for (int[] strArr : list1) 
        {
            System.out.println(Arrays.toString(strArr));
        }
    }


    public static void main(String[] args) 
    {
        Array a = new Array();
        a.runCompareEdit();
        a.addDisplayFinalArrays();
    }
}