1. ホーム
  2. java

[解決済み] Java の配列を表示する最も簡単な方法は何ですか?

2022-03-14 08:29:42

質問

Javaでは、配列は toString() そのため、直接印刷しようとすると className + の16進数+'@' hashCode で定義される配列の Object.toString() :

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]

解決方法は?

Java 5以降では Arrays.toString(arr) または Arrays.deepToString(arr) は、配列の中の配列の場合です。ただし Object[] バージョンでは .toString() を配列の各オブジェクトに対して実行します。出力は、あなたが尋ねたとおりの方法で装飾さえされています。

例を挙げます。

  • 単純な配列。

    String[] array = new String[] {"John", "Mary", "Bob"};
    System.out.println(Arrays.toString(array));
    
    

    出力します。

    [John, Mary, Bob]
    
    
  • ネストされたアレイ。

    String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
    System.out.println(Arrays.toString(deepArray));
    //output: [[Ljava.lang.String;@106d69c, [Ljava.lang.String;@52e922]
    System.out.println(Arrays.deepToString(deepArray));
    
    

    出力します。

    [[John, Mary], [Alice, Bob]]
    
    
  • double アレイです。

    double[] doubleArray = { 7.0, 9.0, 5.0, 1.0, 3.0 };
    System.out.println(Arrays.toString(doubleArray));
    
    

    出力します。

    [7.0, 9.0, 5.0, 1.0, 3.0 ]
    
    
  • int アレイです。

    int[] intArray = { 7, 9, 5, 1, 3 };
    System.out.println(Arrays.toString(intArray));
    
    

    出力します。

    [7, 9, 5, 1, 3 ]