Xtend:从两个不同的ArrayList添加元素

时间:2015-07-22 05:42:42

标签: java arraylist xtend

我有一个Integer的ArrayList。

a = {1, 2, 3, 4, 5}
b = {6, 7, 8, 9, 10}

我想添加2个数组的元素。 所以,新阵列现在将是: c = {7, 9, 11, 13, 15}即(1 + 6),(2 + 7),(3 + 8)等。

有没有办法在没有for循环的情况下执行此操作?我正在寻找类似a.add(b)的东西。

3 个答案:

答案 0 :(得分:1)

您可以使用(0..<a.size).map[ idx | a.get(idx) + b.get(idx) ].toList

之类的内容

如果你想使用数组,它将如下所示:

val int[] a = #[1, 2, 3, 4, 5]
val int[] b = #[6, 7, 8, 9, 10]
val int[] sums = (0..<a.length).map[ idx | a.get(idx) + b.get(idx) ]

答案 1 :(得分:0)

您可以使用Streams API(Java 8):

List<Integer> c = IntStream.range(0,a.size())
                           .map(i -> a.get(i) + b.get(i))
                           .boxed()
                           .collect(Collectors.toList());

我不确定它是否比for循环短。

答案 2 :(得分:0)

使用Java 8,您可以尝试这种方式:

List<Integer> c = IntStream.range(0, a.size())
                .mapToObj(i -> a.get(i) + b.get(i))
                .collect(Collectors.toList());

如果你的变量类型是数组,那么:

int[] a = {1, 2, 3, 4, 5};
int[] b = {6, 7, 8, 9, 10};

List<Integer> c = IntStream.range(0, a.length)
                .mapToObj(i -> a[i] + b[i])
                .collect(Collectors.toList());