我正在尝试这款游戏 我有代表天空的多架飞机和牢房! 一个像元可以具有多个物体(飞机),而像元具有x,y,z 如何获取(x,y,z)某个单元格中最旧的元素? 我使用ArrayList的ArrayList将多个元素存储在一个单元格中 现在我需要搜索单元格!最好的方法是什么?
这是我的示例代码
ArrayList <Integer> coord1 = new ArrayList ();
coord1.add(1);
coord1.add(1);
coord1.add(1);
ArrayList <Integer> coord2 = new ArrayList ();
coord2.add(3);
coord2.add(3);
coord2.add(3);
ArrayList list1 = new ArrayList();
list1.add("aircraft1");
list1.add("aircraft2");
ArrayList list2 = new ArrayList();
list2.add("aircraft3");
list2.add("aircraft4");
ArrayList<ArrayList> cell1 = new ArrayList();
cell1.add(coord1);
cell1.add(list1);
ArrayList<ArrayList> cell2 = new ArrayList();
cell2.add(coord2);
cell2.add(list2);
// How to search through! Get aircraft in a certain position
}
public static void getAircrafts (int x, int y ,int z) {
}
public void iterator (ArrayList list) {
Iterator<ArrayList> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
答案 0 :(得分:0)
如果您的钥匙是飞机的位置,HashMap
将为您工作。如果您在Map
上运行多个线程,则需要同步访问。
如果您需要通过多个键(即按名称或位置)访问飞机,则需要将飞机存储在多个HashMap
结构中。
编辑1
如果一个位置可以有多架飞机,那么键的值必须是某种列表(也许是ArrayList
)。如果某个位置可能永远不会有多架飞机,那么键的值可以是飞机。