Javaで配列をコンソールに表示したいとき、これまではfor文などを記述していたのですが、Arrays.toStringメソッドを使うことで楽に表示することができます。
サンプル
int[] a = {1, 2};
// これまで
for (int i: a) {
System.out.println(i);
}
// または
Arrays.stream(a).forEach(System.out::println);
// これから
System.out.println(Arrays.toString(a));
// 注意
System.out.println(a.toString());
コンソール
1
2
1
2
[1, 2]
[I@bebdb06
上記の3つのものを比較すると,Arrays.toStringメソッドが一番すっきり書けます.Stream APIを使った方法もいいような気がしますが,これは多次元配列を扱う際に記述が難しくなるので,Arrays.toStringがベターです.
ちなみに最後のようにa.toString()とすると,配列変数のハッシュ値が表示されてしまいます.また,System.out.printlnなどの標準出力メソッドでは,内部で引数のtoString()が呼ばれるようになっているので,System.out.println(sb.toString());などの冗長な書き方は控えましょう.
多次元配列のとき
deepToStringメソッドを使いましょう。
String[][] sss = {{"a","bb"}, {"ccc"}};
System.out.println(Arrays.toString(sss));
System.out.println(Arrays.deepToString(sss));
コンソール
[[Ljava.lang.String;@bebdb06, [Ljava.lang.String;@7a4f0f29]
[[a, bb], [ccc]]
まとめ
配列を標準出力したいときはArrays.toString,Arrays.deepToStringメソッドを使いましょう.