0

この単純なコードの何が問題なのかを見つけようとしました。この Web サイトでサンプルを検索しようとしましたが、見つかりませんでした。配列のリストを作成したい。したがって、myList.get(0) を呼び出すと、最初に array1 が出力されます。myList.get(0)[0] の場合、最初の値。ありがとう私のコード:

List<int[]> myList = new ArrayList<int[]>();
    int[] array1 =  {15, 20, 40};
    int[] array2 =  {30, 7, 18};

    myList.add(array1);
    myList.add(array2);
    System.out.println(myList);

この種の出力を提供します。[[I@129f3b5、[I@13f3045]

4

8 に答える 8

1

次のように印刷する必要があります。

for(int i = 0; i < myList.size(); i++) {
    int[] numbers = myList.get(i);
    System.out.println(Arrays.toString(numbers));
}

Array は Objectであり、ご存じのとおり、各オブジェクトにはtoStringメソッドがあります。デフォルトでtoStringは、クラス名の表現が表示され、@次にハッシュコードが追加されます。

于 2013-10-30T13:27:42.683 に答える
0

私@129f3b5

私@13f3045

配列のデフォルトのtoString()実装です。

したがって、コードは完全に正しく、配列はリストに格納されます。ただ、toString()配列にはあまり役に立ちません。

簡単に言えば、 array に頼るべきではありませんtoString()

于 2013-10-30T13:30:43.557 に答える
0

コードは正しいです。ただし、配列を単純に印刷することはできず、次のようなことを行う必要があることを覚えておく必要があります System.out.println(Arrays.toString(myList));

于 2013-10-30T13:33:29.397 に答える