在java中我想选出这两个数组a=[1,2,3,4,5];b=[1,2,3,6,7]中的不同元素用boolean类型写,求各位大神帮助
2个回答
展开全部
你的需求描述的不清楚。需要猜。
--------------------------------
以下是代码,一个不太严谨的实现,凑活看看吧
package ex;
import java.util.Arrays;
public class ArrayCompare {
// 只使用jdk的方法
public static void main(String[] args) {
int[] s1 = { 1, 2, 3, 4, 5, 7, 11, 34, 22, 44 };
int[] s2 = { 1, 2, 3, 41, 6, 7, 10, 11, 22, 56, 22, 66, 7, 66 };
// 获取s1中有的s2中没有的
int[] r1 = arrayCompare(s1, s2);
System.out.println(Arrays.toString(r1));
// 获取s2中有的s1中没有的
int[] r2 = arrayCompare(s2, s1);
System.out.println(Arrays.toString(r2));
// 两者合起来的不同元素即r1+r2
int length = r1.length + r2.length;
int[] r3 = new int[length];
System.arraycopy(r1, 0, r3, 0, r1.length);
System.arraycopy(r2, 0, r3, r1.length, r2.length);
System.out.println(Arrays.toString(r3));
System.exit(0);
}
// 返回一个数组,记录存在于a1但不存在于a2的元素
public static int[] arrayCompare(int[] a1, int[] a2) {
int length = a1.length > a2.length ? a1.length : a2.length;
int[] ret = new int[length];
int k = 0;
//遍历对比,找出不存在于a2的元素放到ret中
for (int i = 0; i < a1.length; i++) {
boolean b = false;
for (int j = 0; j < a2.length; j++) {
if (a1[i] == a2[j]) {
b = true;
break;
}
}
if (!b) {
ret[k++] = a1[i];
}
}
return Arrays.copyOf(ret, k);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询