[英]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]);
int
和Integer
是两个不同的东西(很久以前我第一次学习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);
您可能已经在ArrayList的API文档中找到了它-您应该真正学习使用API文档,您将一直需要它来回答诸如此类的问题。
您还可以使类(例如Pos)并使x和y作为属性并使构造函数。 您可以使arraylist的类型为Pos ArrayList arrayList = new ArrayList <>();。 arrayList.add(new Pos(3,2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.