2016-01-18 3 views
-2

так что в основном это мой код:Почему мой массив дает мне этот «[I @ 106d69c» вывод всегда?

Random randomgenerator = new Random(); int [] arr = новый int [8];

for (int i = 0; i < arr.length; i++) { 
     arr[i] = randomgenerator.nextInt(100); 
    } 

    System.out.println(arr); 
} 

}

и это то, что появляется в консоли:

[I @ 106d69c

мне очень нужна помощь в этом, я, вероятно, делать какую-то страшную ошибку, потому что я новый для Java-кодирования.

+1

Используйте 'Arrays.toString (yourArrayHere)' – azurefrog

+0

Только для вас знать, если вы что-то вроде 'xx @ yyyyyy', скорее всего, это адрес объекта, а не его содержимое, а' xx' может даже сказать вам его тип. Например, ваш '' i', это означает 'массив целых чисел'. –

+1

@ Gaël Просто дружественный FYI, метод toString по умолчанию не отображает адрес памяти объектов, но имя класса объекта и его hashcode объединены. [См. Здесь] (http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()) для получения дополнительной информации. –

ответ

3

Вы печатаете весь массив, поэтому вызывается метод массива по умолчанию toString (и он печатает хэш-код и тип массива, ничего полезного для вас).

То, что вы хотите что-то вроде:

for (int i = 0; i < arr.length; i++) { 
     System.out.println(arr[i]); 
    } 

Или еще лучше, как @azurefrog сказал:

System.out.println(java.util.Arrays.toString(arr));