簡體   English   中英

在Arraylist的Arraylist中搜索

[英]Searching through Arraylist of Arraylist

我正在嘗試這款游戲,因為我有多個飛機和細胞代表天空! 一個單元格可以有多個物體(飛機),並且一個單元格具有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());    

}
}

}

如果您的鑰匙是飛機的位置,則HashMap將為您工作。 如果您在Map上運行多個線程,則需要同步訪問。

如果您需要通過多個鍵(即按名稱或位置)訪問飛機,則需要將飛機存儲在多個HashMap結構中。

編輯1

如果一個位置可以有多架飛機,那么鍵的值必須是某種類型的列表(也許是ArrayList )。 如果一個位置可能永遠不會有多架飛機,那么鑰匙的值可以是飛機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM