Javaの配列を印刷する一番簡単な方法は?
Javaでは、配列はtoString()
をオーバーライドしないので、配列を直接印刷しようとすると、className
+ '@' + Object.toString()
で定義された配列のhashCode
の16進数が表示されます。
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // prints something like '[I@3343c8b3'
しかし、通常は [1, 2, 3, 4, 5]
のようなものが必要になるでしょう。一番簡単な方法は何でしょうか?入力と出力の例を挙げてみましょう。
// Array of primitives:
int[] intArray = new int[] {1, 2, 3, 4, 5};
//output: [1, 2, 3, 4, 5]
// Array of object references:
String[] strArray = new String[] {"John", "Mary", "Bob"};
//output: [John, Mary, Bob]
1838
3
Java 5以降では,配列の中の配列に対して,
Arrays.toString(arr)
または[Arrays.deepToString(arr)
][2]を使うことができます.なお,Object[]
バージョンでは,配列内の各オブジェクトに対して.toString()
を呼び出しています.出力は,あなたが求めている通りの方法で装飾されています.例
単純な配列。
出力します。
Nested Array:
出力します。
double
配列です。出力します。
int
配列。出力します。
[2]: https://docs.oracle.com/javase/9/docs/api/java/util/Arrays.html#deepToString-java.lang.Object:A-
必ず標準ライブラリを先に確認してください。 試してみてください。
や、配列が他の配列を要素として含んでいる場合は
Java 1.4を使用している場合は、代わりに次のようにします。
(もちろん、1.5+でも動作します)。