如何将数组添加到数组的数组列表(Arraylist <integer []>)

时间:2019-05-11 22:12:07

标签: java arrays arraylist

我想在推箱子游戏中保存我的玩家角色的步骤。 因此,起初我想用字符的实际位置填充一个由int x和y组成的数组,称为“ pos”。 而且比我想将此数组添加到一个名为“ moves”的数组ArrayList中。

一个玩家位置的数组:

int[] pos = new int [2];

ArrayList适用于所有步骤,玩家在关卡中制作:

Arraylist<Integer[]> moves = new ArrayList<>();
如果

“ int []”放在ArrayList的尖括号内,则会出错。

如何将Array pos添加到ArrayList移动​​中?

3 个答案:

答案 0 :(得分:2)

int [] 完全兼容。但是 int []!=整数[] ,请在两个地方都使用相同的内容。

int[] pos = new int[2];
ArrayList<int[]> arrayList = new ArrayList<>();
pos[0] = 1;
pos[1] = 2;
arrayList.add(pos);
System.out.println(arrayList.get(0)[0]+ " "+ arrayList.get(0)[1]);

答案 1 :(得分:1)

intInteger是两个不同的东西(很久以前我第一次学习Java时,我也为此感到困惑。

int是所谓的原始数据类型,这意味着它不是对象。 Integer包装器类,基本上是一个类,其唯一目的是包含一个 int,以便可以将其作为对象来处理。从Java 5开始,有了“自动装箱”功能,这意味着您可以向int变量分配Integer值,反之亦然,编译器将对其进行静默处理。这倾向于混淆差异,但仍然存在并且很重要-例如在这种情况下。

因此,如果要将int[]的实例存储在ArrayList中,则需要ArrayList<int[]>,而不是ArrayList<Integer[]>

但是,不可能有ArrayList<int>,因为ArrayList只能存储对象(通用类型仅适用于编译器),而不能存储原语。

是的,要向列表中添加元素,请使用

Arraylist<int[]> moves = new ArrayList<>();
arrayList.add(pos);

您可能已经在API doc for ArrayList中找到了它-您应该真正学习使用API​​文档,您将一直需要它来回答诸如此类的问题。

答案 2 :(得分:0)

您还可以创建类(例如Pos),并将x和y设置为属性,并创建构造函数。您可以使arraylist的类型为Pos ArrayList arrayList = new ArrayList <>(); arrayList.add(new Pos(3,2));