在Arraylist的Arraylist中搜索

时间:2018-08-19 14:30:46

标签: java search arraylist data-structures

我正在尝试这款游戏 我有代表天空的多架飞机和牢房! 一个像元可以具有多个物体(飞机),而像元具有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());    

}
}

}

1 个答案:

答案 0 :(得分:0)

如果您的钥匙是飞机的位置,HashMap将为您工作。如果您在Map上运行多个线程,则需要同步访问。

如果您需要通过多个键(即按名称或位置)访问飞机,则需要将飞机存储在多个HashMap结构中。

编辑1

如果一个位置可以有多架飞机,那么键的值必须是某种列表(也许是ArrayList)。如果某个位置可能永远不会有多架飞机,那么键的值可以是飞机。