无法对ArrayList执行算术运算

时间:2014-02-20 22:04:32

标签: java arraylist

我试图在ArrayList中找到整数的总和,但是我遇到了数据类型的问题。

这是我目前的代码:

    int sum = 0;
    for (int i = 0; i < InputArray.size(); i++) {
        sum = sum + InputArray.get(i)
    }

然而,这给了我错误:

error: bad operand types for binary operator '+'

我也尝试过:

int sum = 0;
for (int i = 0; i < InputArray.size(); i++) {
    int foo = Integer.parseInt(InputArray.get(i));
    sum = sum + foo;
}

然而,这给了我错误:

error: no suitable method found for parseInt(object)

ArrayList仅包含整数。

可能是什么问题?

6 个答案:

答案 0 :(得分:4)

  

ArrayList InputArray = new ArrayList();就是我宣称的那个

需要强制使用raw types的集合元素来访问引用类型的方法。引入泛型以避免这种情况。替换

ArrayList InputArray = new ArrayList();

List<Integer> inputArray = new ArrayList<>();

答案 1 :(得分:2)

//If your list should only Integers, there's no reason not to do this
ArrayList<Integer> InputArray = new ArrayList<Integer>();

//Add some integers
InputArray.add(1);
InputArray.add(2);
InputArray.add(100);

//Create your sum variable
int sum = 0;

//You could use a foreach loop
for(int i : InputArray) {
  sum += i;
}

答案 2 :(得分:1)

您必须定义ArrayList的类型;

ArrayList<Integer> a = new ArrayList<Integer>();
for (int i=0; i < 10; i++) {
    a.add(i);
}
int sum = 0;
for (int i=0; i < 10; i++) {
    sum = sum + a.get(i);
}
System.out.println(sum);

答案 3 :(得分:0)

首先,您需要确保以正确的方式创建ArrayList:

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

然后你可以做一个循环:

int sum = 0;
for (int i=0; i<list.size(); i++ 
{
sum += list.get(i);   
}
System.out.println(sum);

试试这个。祝你好运!

答案 4 :(得分:0)

这是一个使用输入数组字符串的工作代码,因为你应该将字符串作为来自用户的输入(来自input.nextLine):

import java.util.ArrayList;
import java.util.List;

public class Sum {

public static void main(String[] args) {


    List<String> InputArray = new ArrayList<String>();


    InputArray.add("1");
    InputArray.add("2");

    int sum = 0;

    for(String element : InputArray) {
      sum += Integer.valueOf(element);
    }
    System.out.println(sum);
}

}

答案 5 :(得分:-2)

试试这个。

int sum = 0;
for (int i = 0; i < InputArray.size(); i++) {
    int foo = Integer.parseInt(InputArray.get(i).toString());
    sum = sum + foo;
}

它不起作用的原因是因为您试图从不是int的内容中解析String

通过添加.toString()方法,您可以解决这个问题。