数组列表的整数值添加?这能做到吗?



我创建了一个整数数组列表,如下所示:

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

现在我试图增加数组列表中的一个值,如下所示:

tiles_cell_nums.get(0) += 1;

但是它不允许我这样做:

The Left side of an assignment must be a variable

所以我想知道,做这件事最简单的替代方法是什么?

谢谢

try this

tiles_cell_nums.set(0, tiles_cell_nums.get(0) + 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);

嗯,我知道只有一种方法可以做到这一点:

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

不,它既不容易也不漂亮。最好使用FastUtil、HPPC或Trove等库提供的"原始"集合。它们具有各种类型的集合,可以保存基本类型,并且通常比Integer(或任何派生的Number)对象的数组列表更容易使用。

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

编辑:需要明确的是,原语集合不会使您避免使用set(get() + something)习惯用法。它们通常比盒装原语集合更容易使用。

我们也可以使用listtiterator (int Index)方法,listtiterator (0).next()帮助获取int Object。完成加法运算后,可以返回到第零位置。

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

最新更新