在运行时和数组大小期间插入值的Java数组不是常量

时间:2017-06-25 18:41:05

标签: java arrays arraylist

如何在数组中插入值可能会更改的数组,我应该动态获取值,我应该对另一个数组执行相同的操作。 数组的大小范围可以从1到100.我应该比较两个数组中的值并显示奇数。 例 对于列表x = [13, 5, 6, 2, 5]y = [5, 2, 5, 13],函数answer(x, y)将返回6,因为列表x包含整数6和列表{{1}没有。 根据列表yx = [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

2 个答案:

答案 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)