【Processing】ArrayListの中にある配列を視覚的に表示する方法

プログラミング

こんにちは、コンスキです。

今回はArrayListの中身をわかりやすく表示する方法をご紹介します。

ArrayListの中にある配列がprint関数で見られない問題

ArrayListの中にある配列を確認したくて、次のようにprint関数を使うことがあると思います。

int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] array3 = {7, 8, 9};

ArrayList<int[]> list = new ArrayList<int[]>();  //配列を入れるArrayListを用意する
list.add(array1); //ArrayListにarray1を追加する
list.add(array2); //ArrayListにarray2を追加する
list.add(array3); //ArrayListにarray3を追加する

print(list); //3つの配列が入ったArrayListを表示する

実行結果は・・・

[[I@2a209fac, [I@2e1f0e30, [I@6b1d9597]                                                                                                                                                                                               

ArrayListの中にある配列が表示されません。

本当は次のように表示されてほしいです。

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]                                                                                                                                                                                               

解決法

print関数の部分を、下の濃くなっている部分に置き換えます。

import java.util.Arrays; 
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] array3 = {7, 8, 9};

ArrayList<int[]> list = new ArrayList<int[]>();  //配列を入れるArrayListを用意する
list.add(array1); //ArrayListにarray1を追加する
list.add(array2); //ArrayListにarray2を追加する
list.add(array3); //ArrayListにarray3を追加する

for(int i=0; i<list.size(); i++) {
  if(i==0) {
    print("[");
  }
  print(Arrays.toString(list.get(i)));
  if(i<list.size()-1) {
    print(", ");
  } else {
    print("]");
  }
}

コードが少し長くなりますが、これで配列を含んだArrayListを

[[I@2a209fac, [I@2e1f0e30, [I@6b1d9597]                                                                                                                                                                                               

ではなく、

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]                                                                                                                                                                                               

のように出力できると思います。

コメント

タイトルとURLをコピーしました