ArrayList of Integers值加法?可以吗?

时间:2014-05-31 05:10:16

标签: java arraylist

我创建了一个Integers的ArrayList,如下所示:

ArrayList tiles_cell_nums = new ArrayList<Integer>();
tiles_cell_nums.add(0);
tiles_cell_nums.add(0);

现在我尝试增​​加ArrayList中的一个值,如下所示:

tiles_cell_nums.get(0) += 1;

但这不是让我这样做的:

The Left side of an assignment must be a variable

所以我想知道,这样做最简单的选择是什么?

谢谢

4 个答案:

答案 0 :(得分:3)

试试这个

tiles_cell_nums.set(0, tiles_cell_nums.get(0) + 1);

答案 1 :(得分:1)

int i;中,i是一个变量。使用i作为指针可以执行i++。但是,您无法直接使用tiles_cell_nums.get(0)++

final int i = tiles_cell_nums.get(0) + 1;
tiles_cell_nums.set(0, i);

答案 2 :(得分:1)

嗯,我只知道有一种方法可以做这些事情:

ArrayList<int[]> intList = new ArrayList<>();

intList.add(new int[]{23});
intList.get(0)[0] += 1;

System.out.println("Number is: " + intList.get(0)[0]);
  

号码是:24

不,这不容易也不漂亮。您最好使用FastUtilHPPCTrove等库提供的“原始”集合。它们带有各种可以保存原始类型的集合,并且通常比Integer(或任何Number派生)对象的ArrayLists更容易使用。

我最喜欢的是HPPC,但你可以尝试一下,看看你最喜欢哪一个(或者哪个版本有符合你要求的许可证)。

编辑:要清楚,原始集合不会将你从集合(get()+ something)成语中拯救出来。它们通常比盒装基元的集合更容易使用。

答案 3 :(得分:1)

我们也可以使用listIterator(int Index)方法,listIterator(0).next()帮助取int Object.After执行后我们可以设置回零#39; th位置。

tiles_cell_nums.set(0,tiles_cell_nums.listIterator(0).next()+1);