Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 元素之和ArrayList_Java_Arraylist_Methods - Fatal编程技术网

Java 元素之和ArrayList

Java 元素之和ArrayList,java,arraylist,methods,Java,Arraylist,Methods,我是一名Java初学者,正在尝试获取ArrayList中所有元素的总和。我正在使用一种方法进行此操作,并在该方法中得到以下错误: 二进制运算符“+”的操作数类型错误第一种类型:int,second 类型:对象“ 我不知道我做错了什么,谢谢你的帮助 public static int sumNumbers(ArrayList numbers){ int sum = 0; for(int i = 0; i<numbers.size(); i++){ sum+=n

我是一名Java初学者,正在尝试获取ArrayList中所有元素的总和。我正在使用一种方法进行此操作,并在该方法中得到以下错误:

二进制运算符“+”的操作数类型错误第一种类型:int,second 类型:对象“

我不知道我做错了什么,谢谢你的帮助

public static int sumNumbers(ArrayList numbers){
    int sum = 0;
    for(int i = 0; i<numbers.size(); i++){
        sum+=numbers.get(i);
   }
    return sum;
}
publicstaticintsumnumbers(arraylistnumbers){
整数和=0;

对于(int i=0;i将
numbers
声明为
arraylistnumbers
)。 然后,
整数
将被取消绑定到
int
。现在,您的
数组列表
包含的
对象可能不是
int
s

目前,
numbers.get()
将返回一个
对象
,您不能将
对象
直接添加到
int


您始终可以将元素强制转换为
整数
,但我建议使用第一个选项。

数字
声明为
数组列表数字
。 然后,
整数
将被取消绑定到
int
。现在,您的
数组列表
包含的
对象可能不是
int
s

目前,
numbers.get()
将返回一个
对象
,您不能将
对象
直接添加到
int

您可以始终将元素强制转换为整数,但我建议您选择第一个选项。

这很好

import java.util.ArrayList;

public static int sumNumbers(ArrayList<Integer> numbers){
    int sum = 0;
    for(int i = 0; i<numbers.size(); i++){
      sum+=numbers.get(i);
    }
    return sum;
  }
import java.util.ArrayList;
公共静态int-sumNumber(数组列表编号){
整数和=0;
对于(int i=0;in).sum();
}
这可以正常工作

import java.util.ArrayList;

public static int sumNumbers(ArrayList<Integer> numbers){
    int sum = 0;
    for(int i = 0; i<numbers.size(); i++){
      sum+=numbers.get(i);
    }
    return sum;
  }
import java.util.ArrayList;
公共静态int-sumNumber(数组列表编号){
整数和=0;
对于(int i=0;in).sum();
}
//创建一个列表
List ints=Arrays.asList(1,2,3);
//获取列表中元素的总和
int sum=MathUtils.sum(int);
//创建一个列表
List ints=Arrays.asList(1,2,3);
//获取列表中元素的总和
int sum=MathUtils.sum(int);

正如其他人所指出的,您需要为您的
ArrayList
提供一个类型。然后,您可以使用本机流使代码更加紧凑:

ArrayList<Integer> numbers = ... ;
numbers.stream().mapToInt(i -> i).sum();
arraylistnumber=;
numbers.stream().mapToInt(i->i.sum();

正如其他人所指出的,您需要为您的
ArrayList
提供一个类型。然后,您可以使用本机流使代码更加紧凑:

ArrayList<Integer> numbers = ... ;
numbers.stream().mapToInt(i -> i).sum();
arraylistnumber=;
numbers.stream().mapToInt(i->i.sum();

ArrayList numbers
应该是
ArrayList numbers
,类型缺失。
ArrayList
只与
ArrayList
基本相同(不完全相同,但在您的问题上下文中,您可以这样想)。因此在
sum+=numbers.get(i)
编译器将操作视为
int=int+Object
。如果将其更改为
ArrayList
(或者更好的
列表
)编译器将看到
int=int+Integer
,可以应用自动取消装箱来获取
int=int+int
。或者您必须显式地将其强制转换为int@NicholasK您不能将
Integer
对象强制转换为
int
,您需要将其取消装箱,例如通过
Integer.intValue()
或让编译器为您执行此操作。您可以强制转换它,然后调用
.intValue()
ArrayList number
应该是
ArrayList number
,类型丢失。
ArrayList
仅与
ArrayList
基本相同(不完全相同,但在您的问题上下文中,您可以这样想)因此,在
sum+=numbers.get(i);
中,编译器将操作视为
int=int+Object
。如果将其更改为
ArrayList
(或者更好的
List
)编译器将看到
int=int+Integer
,可以应用自动取消装箱来获取
int=int+int
。或者您必须显式地将其强制转换为int@NicholasK您不能将
Integer
对象强制转换为
int
,您需要将其取消装箱,例如通过
Integer.intValue()
或让编译器为您执行此操作。您可以强制转换它,然后调用
.intValue()