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();
}
}