0
public class ArrayUtilities{
  public static void main(String[] args){
    int[] array1= {1,2,3,4,5,10,15,30,32};
    System.out.println(copy(array1));
  }
public static int[] copy(int[] array){
  int[] newArray = new int[array.length];
  for(int i = 0; i < array.length; i++){
    array[i] = newArray[i];
  }
  return newArray;
}
}

配列をコピーするメソッドを作成する必要がありました。問題は、このコードを実行するたびに、配列の代わりに [I@68e4e358. 助けてくださいよろしくお願いします!

4

5 に答える 5

0

[私@68e4e358

toString()for arrays は、必要に応じて実装されていません。配列の型 ([[I) とそれに続くハッシュ コードを返します。

テスト目的で、このメソッドを使用できます。

int[] array1= {1,2,3,4,5,10,15,30,32};
System.out.println(Arrays.toString(copy(array1)));

または、あなたができる代替手段。

  int[] copy = copy(array1);
  for(int element : copy){
    System.out.println(element);
  }

これは、Google で見つけた実装の 1 つです。

public static String toString(int[] a) {
    if (a == null)
        return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(a[i]);
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}
于 2013-10-31T16:00:35.620 に答える
0

toString() をオーバーライドし、そこにコードを記述します

于 2013-10-31T16:01:29.490 に答える