Vector Java中所有元素的总和

gal*_*324 0 java

爪哇 11.6

我有一个大小为 8 的向量,根据用户输入的 1 到 8 之间的数字,我的代码将随机生成值以放置在名为 vec_1 的向量中。

因此,例如,输出看起来像

Enter the number of trials: 
>> 4 
Trials    Random Value
1           10
2           20
3            0
4           60
Run Code Online (Sandbox Code Playgroud)

值 <10,20,0,60> 保存在名为 vec_1 的向量中,然后我使用

Enumeration enu = vec_tor.elements();
while(enu.hasMoreElements()) {
   for (int i = 1; i<=4; i++) {
     System.out.printf("\n     " + String.valueOf(i));
     System.out.printf("      " + String.valueOf(enu.nextElement()));
   }
 }
Run Code Online (Sandbox Code Playgroud)

并排打印出向量中的元素。我想将向量中的所有数字加在一起得到一个总和,所以 10+20+0+60 = 90。我想在添加向量的每个元素后打印“总和:90”。我不确定如何在 java 中为向量逐个元素添加元素,我尝试查找其他问题,但它们主要与数组有关。任何帮助表示赞赏。谢谢!

MC *_*ror 5

使用 Java Streams API:

int sum = test.stream()
    .mapToInt(Integer::valueOf) // or .map(i -> i)
    .sum();
Run Code Online (Sandbox Code Playgroud)

解释:

  • test是一个Vector<Integer>
  • java.util.Collection实现的类必须实现该stream方法。这使程序员能够使用 Stream API。Vector也实现Collection.
  • mapToInt是一种方法,它使从流中提取的所有元素都映射到原语int。这由IntStream类表示。我们通过执行(通过自动拆箱)或通过映射Integer到相应的。inti -> iInteger::valueOf
  • IntStream实现了一个sum()方法,这正是我们所需要的。