自分のゲーム用のマップシステムを作成しています。古い2D配列マップを別のものに置き換えるには、いくつかの段階で私を必要とします。私がやりたいことは、すべての2D arraylistマップをこれらの2D arraylistsのリストに追加することです。しかし、私が見つけにくかったのは、上記のマップを取得したいとき、.getメソッドが正しいデータを与えないということでした。この場合、arraylistの最初の項目を取り出そうとすると、nullになります。したがって、プログラムは私にnullpointerexceptionsを投げた。Java 2D Arraylistを2D arraylistsのリストに追加する
private int[][] mapArray;
private List<int[][]> maps = new ArrayList<>();
mapArray = new int[][]{
{0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 9, 1, 1, 7, 7, 7, 7, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{7, 7, 7, 7, 5, 8, 8, 8, 4, 6, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{4, 4, 4, 4, 4, 8, 8, 8, 4, 4, 6, 7, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{4, 4, 4, 4, 4, 8, 8, 8, 4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};
maps.add(mapArray);
I SOUT maps.get(0)私は、次を得る:
[[[email protected]
私は二つのアイテムを持っている場合、それは次のように表示されます:
[[[[email protected], [[[email protected]]
理想的には、私はこれを次のように追加します:
[[email protected], [email protected]]
私はちょうどどのようにこれを行うかわかりません。どんな助けもありがとう!
私は明らかに何かを見落としているかもしれませんが、おそらくそうです!そこにあるものを実際の値に - 多くのあなたは(あなたがそれらを印刷しようとすると、何が起こるかである)文字列にマップ(またはマップのリスト)を変換の出力を混乱しているように見える
リストに要素を追加する方法は他にありません。配列に対してtoString()メソッドが返すものを変更することはできません。とにかく、どのようなユーザーにも表示されるべきではありません。 –