实现一下算法
1、有两个int型数组:int[]a、int[]b
2、int[]b是int[]a的子集:int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] b = { 1, 3, 6 };
3、在int[]a中删除b中的数字,并返回:[2, 4, 5, 7, 8, 9]
具体代码如下:考虑了好久
主体方法:
public List<Integer> toRepeat(int[] a, int[] b) {
//将int数组转换成Integer数组
Integer[] A = this.getArrays(a);
Integer[] B = this.getArrays(b);
//调用Arrays.asList将数组转换成列表
List<Integer> aList = Arrays.asList(A);
List<Integer> bList = Arrays.asList(B);
//接下去是重点。将上面两个List转换成ArrayList
List<Integer> acList = new ArrayList<Integer>(aList);
List<Integer> bcList = new ArrayList<Integer>(bList);
//遍历去除重复
for(Integer i : bcList){
if(acList.contains(i)){
acList.remove(i);
}
}
//getArrays方法
private Integer[] getArrays(int[] a) {
Integer[] A = new Integer[a.length];
for (int i = 0; i < a.length; i++) {
A[i] = a[i];
}
return A;
}