【发布时间】:2012-03-16 11:01:24
【问题描述】:
我遇到了非常基本的 OO 理解问题,非常感谢任何帮助。
每次按下按钮时,我都会尝试将“Thing”的实例添加到数组列表中,但我不知道如何创建唯一实例以添加到列表中。按下不同的按钮应该会从列表中删除最近的对象。
ArrayList myList = new ArrayList<Thing>();
if(input.isKeyPressed(Input.KEY_A)){
Thing myThing = new Thing();
myThing.setNumber(myList.size());
myList.add(myThing);
}
if(input.isKeyPressed(Input.KEY_R)){
if(myList.size()>0){
myList.remove(myList.size()-1);
}
}
如果我打算制作很多“事物”,但我并不关心它们的名称(我也不想跟踪唯一的事物对象名称)。如何以最小的痛苦在每次按下按钮时创建一个独特的“事物”对象。
更新: 感谢cmets,请让我尝试更好地表达我的问题... 当我创建一个充满“事物”的 ArrayList 时,每个实例都称为“myThing”,每个实例都具有相同的实例变量值。
如果我想让一些“事物”拥有boolean isVisable = true,而其他的拥有boolean isVisable = false。我被卡住了,因为列表的每个元素都具有相同的名称。
【问题讨论】:
-
以上代码有什么问题?
-
我也不明白。你的问题到底是什么?如果您希望它独一无二,那么也许可以尝试哈希方法?这是你想要的吗?我不确定,抱歉。
-
每次执行
new Thing()时,您都会创建一个唯一的Thing实例。您需要稍微澄清一下您的问题,以说明您的问题是什么。 -
看起来您想使用 Stack 而不是 ArrayList。
-
我将不得不研究“哈希”和“堆栈”,我对 Java 非常陌生。 Emil,当你说我每次实例化
new Thing()时都会创建一个唯一的Thing实例,即使它总是具有相同的名称,它真的是一个唯一的实例吗?myThing?