将int存储在ArrayList中并将其恢复为原始变量int - Java

时间:2011-10-11 13:07:30

标签: java arraylist int

我收到错误,无法找到解决方法。

我将一个int添加到ArrayList。

int n = 1;
ArrayList list = new ArrayList();
list.add( n );

再往下,我试着把它放回另一个int:

grid[ y ][ x ] = list.get(0);

我也试过这个:

grid[ y ][ x ] = (int) list.get(0);

但是它不起作用,我收到了这个错误:

found   : java.lang.Object
required: int
grid[ y ][ x ] = (int)list.get(0);
                              ^

我希望有人可以帮助我。

5 个答案:

答案 0 :(得分:10)

使用类型参数而不是原始ArrayList

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

您得到的错误是因为您无法将Object转换为int,因此自动装箱会发生故障。您可以将其转换为Integer,然后将其自动装箱到int,但使用type参数是一个更好的解决方案。

答案 1 :(得分:7)

使用ArrayList<Integer>。当您执行list.get()时,您会收到一个Integer,您可以致电intValue()以获取int

答案 2 :(得分:3)

(Integer)list.get(0)会做到这一点。然后,自动取消装箱会自动将其转换为int

答案 3 :(得分:0)

Array-list和Arrays之间的主要区别是,Array-list只能将对象存储到其中,而不能存储原始数据类型(在您的情况下为整数)。为了解决这个问题,我们使用ArrayList<Integer> list = new ArrayList<Integer>(); 谢谢。

答案 4 :(得分:0)

你可以像这样创建一个 ArrayList:

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

然后做同样的事情,出现这个问题是因为ArrayList只能以Objects的形式存储元素,因为它是Java中Collections框架的一部分,所有的东西都以Objects的形式存储。因此,它将原始 int 转换为导致问题的包装类整数。