簡體   English   中英

無法對ArrayList執行算術運算

[英]Can't perform arithmetic operations on an 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僅包含整數。

可能是什么問題呢?

ArrayList InputArray = new ArrayList(); 我就是這樣宣布的

需要轉換使用原始類型的集合的元素以訪問引用類型的方法。 為了避免這種情況,引入了泛型。 更換

ArrayList InputArray = new ArrayList();

List<Integer> inputArray = new ArrayList<>();
//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;
}

您必須定義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);

首先,您需要確保使用所需的類型以正確的方式創建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);

嘗試這個。 祝好運!

這是一個使用字符串輸入數組的工作代碼,因為您應該將字符串作為用戶(來自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);
}

}

試試這個吧。

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

它不起作用的原因是因為您試圖從非String解析一個int

通過添加.toString()方法,您將可以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM