1

多次元配列リストに関する情報を検索しているときに、多次元配列リストを処理するクラスを作成できることを知りました。

Bejeweled に似た Android ゲームをやっていますが、一般的な多次元グリッドを使用する代わりに、これの方が良いと思います!? 私はすべてのスプライト オブジェクトのリストも持っていますが、このすべてのオブジェクトを多次元 arraylist クラスで格納および制御できるのでしょうか?

しかし、クラスがどのように見えるか、配列リストから値を設定および取得する方法がわかりません。それがどのように機能するかを説明し、簡単なコード例を示すことに興味がある人はいますか? ありがとう!

編集:この例のように配列リストにオブジェクトを入れたいint grid[][] = new int[8][8];のですが、整数の代わりにオブジェクトを入れたいです。そして、先ほど示した例と同じように簡単に値を取得および設定できるのでしょうか?

編集 2: グリッド 8x8 があるため、[8][8] のような配列を使用していますが、各位置に整数型またはブール型の値しか持てません。また、このグリッド内の位置を持つ 64 個のオブジェクトすべてを処理するために、arraylist を使用する必要があります。各オブジェクトは、グリッド配列と画面上の位置の両方にその位置を格納します。オブジェクトを格納し、グリッドを持つために、多次元arrayListを使用してグリッドを処理および作成するのを少し簡単にしたかっただけですか? 可能ですか、これを行うためのより良い方法はありますか?

4

4 に答える 4

2
    int size =8;
    List<List<Integer>> list  = new ArrayList<List<Integer>>(size);

    for(int i=0; i<size; i++)
    {
        list.add(new ArrayList<Integer>());
    }

    for (int i = 0; i < size; i++) 
    {
        for (int j = 0; j < size; j++) 
        {
            Integer x = list.get(0).get(1); //access the 0,1 element
        }
    }

EDIT:
特定のクラスを使用したい場合。ex:の場合、代わりにNode使用してからアクセスできます。その後、次のようにクラスの任意のメソッドを呼び出すことができます。List<List<Node>>List<List<Integer>>Node

 Node node = list.get(0).get(1); // access the Node at 0,1
 node.getProperties();
于 2013-05-27T07:21:58.750 に答える
0
List<List<Integer>> multiList = new ArrayList<List<Integer>>();
multiList.add(new ArrayList<Integer>());
Integer element = multi.get(0).get(0); // element at 0,0
于 2013-05-27T07:13:45.160 に答える