2014-01-18 1 views
1

Вот мои два массива, один цветный массив, который содержит другой цветный массив в качестве элементов, а второй - массив объектов, который содержит еще один массив объектов в качестве его элементов.Как вы распечатываете элементы объекта в массиве объектов?

Color[] colourArray= {colorBase[1], colorBase[2], colorBase[2], colorBase[6],colorBase[5], colorBase[0]}; 


Ball[] objectArray = {ballGrid[1], ballGrid[2], ballGrid2[2], ballGrid[6], ballGrid[5], ballGrid2[0]}; 

В моей программе я проверить массив цвета, который возвращает который, какой элемент является истинным, и я хочу, чтобы распечатать тот же элемент из массива с мячем.

Например, если colorArray [4] (colorBase [5]) истинно, тогда программа должна распечатать objectArray [4], который является «ballGrid [5]».

if(colorArray[4]==Color.blue){    
    System.out.println((objectArray[4].toString())); 
} 

Однако выход [[email protected]], но мне нужно, чтобы это было ballGrid [5].

Как вы это сделаете?

Я попробовал Arrays.deeptoString, но он дал тот же результат, а также переопределив toString() в классе Ball, но он не работает для моего случая.

+0

«_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Поскольку вы ссылаетесь на индекс массива, вы получаете элемент в этой позиции, а не целый массив. Возможно, вы хотели создать новый массив в каждом месте, например '{new colorBase [1]}' – csmckelvey

+2

, вы получаете элемент в определенном индексе, который является другим объектом, следовательно, hashcode он возвращает. переопределите toString() правильно в классе шара и верните объект строки –

+0

Покажите нам 'Ball.java' – MariuszS

ответ

0

Нет, это невозможно, поскольку вы сохраняете значения другого массива в массиве с использованием индекса. Для того, чтобы понять,

Здесь вы используете, если (colorArray[4]==Color.blue), colorArray[4] относится к colorBase[5] который INTURN получает на пятое значение индекса (объект Color), который хранится в colorBase массива и возвращается, но не сам colorBase[5].

Аналогично, когда вы получаете доступ objectArray[4] вы получаете объект Болл хранится на 5-индекс ballgrid массива, но не ballGrid[5]

Таким образом, вы получите ballGrid [5] если вы храните это в виде строки непосредственно, но это не что вы имели в виду в объявлении массива.

Смежные вопросы