【问题标题】:Add values stored in different Arraylist to a new one for the Arithmetic Mean将存储在不同 Arraylist 中的值添加到算术平均值的新值中
【发布时间】:2015-08-21 09:52:56
【问题描述】:

我有多个 Arraylist 并且都具有相同的大小:

ArrayList<Integer> list1; // = [ 1 , 1 , 1 , 1 , 1 ]
ArrayList<Integer> list2; // = [ 2 , 2 , 2 , 2 , 2 ]
ArrayList<Integer> list3; // = [ 6 , 6 , 6 , 6 , 6 ]

这些值仅对示例有用。

将它们相加并获得 [9 , 9 , 9 , 9 , 9 ] 然后在最后 [3 , 3 , 3 , 3 , 3 ] 的平均值!

我想获取一个名为 list4 的新列表

list4 = list1+list2+list3 

对于平均而言,这种方式我还需要:

list4 = list4/3

我怎样才能获得这个(没有循环)?

【问题讨论】:

  • addAll , sumAll 然后除以 3。循环似乎不可避免。
  • 1) ArrayList 不能是原始类型; 2) 循环总是必要的,因为结果集合应该包含多个元素。
  • 没有循环就不可能在数组中添加值。看看这个answer

标签: java arraylist sum add


【解决方案1】:

不是一个精确的解决方案,但更接近 Java 8 的解决方案。您可以像 IntStream.range(0, list1.size()).mapToObj(i -&gt; (list1.get(i) + list2.get(i) + list3.get(i))/3).collect(Collectors.toList()); 那样做。前提是所有列表的大小相同。例子..

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Sample {

    public static void main(String[] args) {
        List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(new Integer[]{ 1 , 1 , 1 , 1 , 1 })); 
        List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(new Integer[]{ 2 , 2 , 2 , 2 , 2 })); 
        List<Integer> list3 = new ArrayList<Integer>(Arrays.asList(new Integer[]{ 6 , 6 , 6 , 6 , 6 })); 

        List<Integer> list4 = IntStream.range(0, list1.size()).mapToObj(i -> (list1.get(i) + list2.get(i) + list3.get(i))/3).collect(Collectors.toList());

        System.out.println(list4); // Prints [3, 3, 3, 3, 3]
    }

}

【讨论】:

  • 如果您告诉 OP 这段代码需要 JDK8,那就太好了。
  • 这是第一行。我提到了“在 Java 8 中”。 :-)
【解决方案2】:

没有循环就不可能。

即使在 Java8 中使用流,您也可以获得单个 ArrayList 元素的总和。

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • @TheThom 答案是not possible
  • @SureshAtta 没关系。仍然没有答案。
  • @TheThom 如果您不同意答案,请投反对票。
  • @SureshAtta 我不同意。
猜你喜欢
  • 2015-01-13
  • 2011-12-04
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多