将一个Integers的ArrayList与另一个Integers的ArrayList相加,得出错误:预期的变量

时间:2017-11-14 11:43:38

标签: java android arraylist

我的Android应用程序中有两个包含6个元素的ArrayList。我们称它们为ArrayList“A”和“B”。我班级中的每个对象在构造函数中都有这一行:

likes = new ArrayList<Integer>();

我也可以在构造函数中添加这一行(我不确定哪一行更好,但我想将大小初始化为6,所有元素都应为0):

likes = new ArrayList<>(Collections.nCopies(6, 0));

我的类中有一个名为Calculate的方法,它应该采用与A大小相同的整数B的新ArrayList作为参数。然后使用此对象的ArrayList,A。

添加/总和B.

以下是方法:

public void Calculate(ArrayList<Integer> likes){
    for(int i = 0; i < likes.size(); i++){
        this.likes.get(i) += likes.get(i);
        //this.likes.get(i) = 3;
    }
}

我在 this.likes.get(i)行下面有一条红线,说:

  

预期变量

即使我试着说 this.likes.get(i)= 3; 我也会遇到同样的错误。

假设A = {0,0,0,0,0,0},B = {1,0,0,-1,1,0}

对ArrayList求和的正确方法是什么,使A = {1,0,0,-1,1,0}?

4 个答案:

答案 0 :(得分:3)

您无法为this.likes.get(i)等值指定值。 您只能为变量赋值。

要修改i的{​​{1}}元素,您应该使用ArrayList的{​​{1}}方法:

ArrayList

答案 1 :(得分:2)

你需要使用set(index,value)因为左侧没有容器来保存值因此错误,所以你可以将结果值传递给list以将其设置在所需的位置

set

答案 2 :(得分:1)

您正在尝试为方法指定值,请尝试以下方法:

    int oldLikesCount = this.likes.get(i);     
    this.likes.set(i,oldLikesCount +likes.get(i));

答案 3 :(得分:0)

您试图错误地使用get方法(仅用于检索数据),而您必须使用set方法在ArrayList中分配值

enter image description here

public void Calculate(ArrayList<Integer> likes){
    for(int i = 0; i < likes.size(); i++){
        this.likes.set(i, (this.likes.get(i) + likes.get(i));
        //this.likes.set(i, 3);
    }
}