如何在对象数组中打印出对象元素?

时间:2014-01-18 16:54:24

标签: java arrays

这是我的两个数组,一个是包含另一个颜色数组作为元素的颜色数组,第二个是包含另一个对象数组作为其元素的对象数组。

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]};

在我的程序中,我检查Color数组,它返回哪个元素为true,然后我想从Ball数组中打印出相同的元素。

例如,如果colorArray [4](colorBase [5])为true,则程序应打印出objectArray [4],即“ballGrid [5]”。

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

然而输出是[finalproject.Ball@9aba32],但我需要它是ballGrid [5]。

你会怎么做?

我尝试了Arrays.deeptoString,但是它产生了相同的结果,并且在Ball类中覆盖了toString(),但它对我的情况不起作用。

1 个答案:

答案 0 :(得分:0)

不,这是不可能的,因为您使用索引将另一个数组的值存储在数组中。说清楚

如果(colorArray[4]==Color.blue)使用colorArray[4]colorBase[5]引用colorBase[5],其中inturn获取存储在colorBase数组中并返回的第5个索引值(Color对象),而不是{{1}本身。

类似地,当您访问objectArray[4]时,您将Ball对象存储在ballgrid数组的第5个索引处,但不是ballGrid[5]

所以你得到 ballGrid [5] ,除非你把它直接存储为String,但这不是你在数组声明中的意思。