Help us understand the problem. What is going on with this article?

配列の値をfor文を使わずに出力する方法

More than 1 year has passed since last update.

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.toStringArrays.deepToStringメソッドを使いましょう.

matsubox
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away