java - 为什么我没有得到真正的金额?

标签 java

我有一个数组列表,其中添加了以下数字。

ArrayList<Integer> nums  = new ArrayList<>();

nums.add(4);
nums.add(19);
nums.add(32);
nums.add(-8);

然后我使用以下代码来迭代列表并在打印之前对它们进行求和。

sum += IntStream.range(0, nums.size()).sum();
System.out.println(sum);

它打印出的值为 6。有谁知道发生了什么或者有人可以解释我在这里做错了什么吗?感谢您抽出宝贵的时间,如果我需要补充任何内容以供澄清,请不要犹豫。

最佳答案

如果是 IntStream.range(0,6),您将获得值 0,1,2,3,4,5,6。您需要使用 nums.stream() 对 ArrayList 中的整数求和

Blockquote

import java.io.*; 
import java.util.*; 
import java.util.*; 
import java.util.stream.IntStream; 

public class HelloWorld{

     public static void main(String []args){
       ArrayList<Integer> nums  = new ArrayList<>();
        nums.add(4);
        nums.add(19);
        nums.add(32);
        nums.add(-8);

        Integer sum = nums.stream()
            .mapToInt(Integer::intValue)
            .sum();
        System.out.println(sum);
     }
}

关于java - 为什么我没有得到真正的金额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60124073/

相关文章:

java - 发布时未指定 gradle suproject 版本

java - 从文件中读取 boolean 变量

java - 如何修复 org.osgi.framework.BundleException

java - 发生 MaxUploadSizeExceededException 时如何关闭套接字?

java - 从文件中读取。创建一个名为 Java 的变量

java - 有没有办法在被调用类的方法中访问变量/获取调用者类的分配值?

java - 使用 HttpURLConnection 时获取本地端口

java - 使用 Java Stream API 获取大写字符作为字符串

java - 如何在 webView 中向网站添加 CSS(填充)

java - Windows 上的内存使用量不断增长