java - 如何使用普通的 For 循环打印动态数组

标签 java arraylist

我在打印用 ArrayList 声明的数组的值时遇到问题。 我正在使用增强的 for 来打印它的值,但是如果我想对它们求和怎么办?

import java.util.ArrayList;

import java.util.Scanner;

public class Program
{

public static void main(String[] args){

    int sum = 0;
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    Scanner input = new Scanner(System.in);
    int x = input.nextInt();

    while (x != -1){
        numbers.add(x);//xonoyme ta stoixeia ston numbers

        x = input.nextInt();
    }

    for (int y: numbers){
        sum = sum + numbers;
        System.out.print(y + " ");
    }
    System.out.print("to athroisma einai: " + sum);
}

}

错误出现在命令中 总和=总和+数字;

最佳答案

这里:

sum = sum + numbers;

numbers 是您要迭代的数字的列表

您的意思可能是:

sum = sum + y;

sum 是一个原始 int 变量。 +运算符仅允许您在此处添加其他原始数值。您无法添加List<Integer>为 int 值。

或者,您可以在此处使用 Java 8 流:

numbers.stream().mapToInt(Integer::intValue).sum();

也总结了列表中的所有值。

关于java - 如何使用普通的 For 循环打印动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800561/

相关文章:

java - 使用集合对列表进行排序会导致错误

java - 如何获取动态创建的文本字段的值

java - 输入验证后如何显示菜单?

java - java中的Date()命令取EST时间为什么?我的系统显示UTC时间,我也想要UTC时间?

java - 单线程和多线程程序的基准

java - 防止在 Java 中创建/启动线程

java - 为什么这个循环过程需要这么长时间?

java - 组织.hibernate.QueryException : could not resolve property

java - golang 服务器向 Android 发送字节数组

java - 需要帮助来理解 Java 中 ArrayList 的反序列化