关于如何取两个数组不同的数的方法(JAVA)
参考: 两个数组输出不同数的方法
这段代码的确可以找出他们之间的不同的数,但是我发现这个代码只能用array2比array1,而且如果array1有,array2没有的数字也是输出不出来的,所以我就想到加一个for循环。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200322175837797.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTA0NjAz,size_16,color_FFFFFF,t_70)
具体代码如下:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class _取数组中不同的数输出 {
public static <T> void main(String[] args) {
List<T> list0 = new ArrayList<T>();//创建一个列表来接收compare传过来的list3
Integer arr1[]= { 1, 2, 3,4,9,12,14 };
Integer arr2[]= { 1,2,10,11 };
list0=(List<T>) compare(arr1,arr2);
System.out.print(list0);
}
public static <T> List<T> compare(T[] t1, T[] t2) {
List<T> list1 = Arrays.asList(t1);
List<T> list2 = Arrays.asList(t2);
List<T> list3 = new ArrayList<T>();
//用来存放数组二比数组一多出来的数的数组
List<T> list4=new ArrayList<T>();
//因为你不知道到底是哪个数组差什么,所以你需要写两个for循环找出不同的数值
for (T t : t1) {//遍历t1 每次遍历的结果为t
if (!list2.contains(t)) {
//如果T2里面没有t则把t加入到list3中
list3.add(t);
}
}
for (T m : t2) {//同上
if (!list1.contains(m)) {
list4.add(m);
}
}
list3.addAll(list4);//将两次的值合并在一个list中
return list3;
}
}
运行结果:
这样就可以完整的找到两个数组中所有不同的数了!
我也还在学习之中,若有不足的地方请大家给我指出来,共同进步!