如何在数组中插入值可能会更改的数组,我应该动态获取值,我应该对另一个数组执行相同的操作。
数组的大小范围可以从1到100.我应该比较两个数组中的值并显示奇数。
例
对于列表x = [13, 5, 6, 2, 5]
和y = [5, 2, 5, 13]
,函数answer(x, y)
将返回6
,因为列表x
包含整数6
和列表{{1}没有。
根据列表y
和x = [14, 27, 1, 4, 2, 50, 3, 1]
,函数y = [2, 4, -4, 3, 1, 1, 14, 27, 50]
将返回answer(x, y)
,因为列表-4
包含整数y
和列表{{ 1}}不
-4
答案 0 :(得分:1)
除非确实需要使用数组和/或手动完成所有操作,否则使用Java 8的新API有一个简单的方法:
private static List<Integer> answer(List<Integer> x, List<Integer> y) {
return Stream.concat(x.stream(), y.stream())
.filter(i -> !x.contains(i) || !y.contains(i))
.collect(Collectors.toList());
}
样本用法:
public static void main(String[] args) {
List<Integer> x1 = Arrays.asList(13, 5, 6, 2, 5);
List<Integer> y1 = Arrays.asList(5, 2, 5, 13);
List<Integer> x2 = Arrays.asList(14, 27, 1, 4, 2, 50, 3, 1);
List<Integer> y2 = Arrays.asList(2, 4, -4, 3, 1, 1, 14, 27, 50);
System.out.println(answer(x1, y1));
System.out.println(answer(x2, y2));
}
打印:
[6]
[-4]
答案 1 :(得分:0)
一种非常简单的方法是将数组转换为List
s。
您可以执行以下操作:
List<Integer> xList = Arrays.asList(x);
List<Integer> yList = Arrays.asList(y);
然后,如果原始x数组较大,请执行xSet.removeAll(ySet)
,反之亦然ySet.removeAll(xSet)
。