繁体   English   中英

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

[英]How do I add arrays to an Arraylist of Arrays (Arraylist<Integer[]>)

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

一个玩家位置的数组:

int[] pos = new int [2];

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

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

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

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

使用int []可以完全正常工作。 但是int []!= Integer [] ,在两个地方都使用相同的内容。

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]);

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);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM