可能难以理解,敬请谅解
我有一个 50 大小的 jbutton 数组,在这个例子中我将使用 7 我有 1 2 3 4 6 7 内的 jbutton 对象,但不是 5。这些都打印在屏幕上。我想删除这些 jbuttons,但是最多 5 个按钮都被删除,而最后两个则没有。
for(int i = 1; i < 51; i++){
if(seat.buttonArray[i] == null){
remove(seat.buttonArray[i]);
seat.buttonArray[i] = null;}
}
最佳答案
假设您希望在删除后更改后面的索引,则无法从数组
中删除元素。为此,您应该使用List
:
Iterator buttonIterator = seat.buttonList.iterator();
while (buttonIterator.hasNext()) {
Object button = buttonIterator.next(); //or more specific type, if your list was generified
if (button == null) { //or some other criteria, wrote this just as an example
buttonIterator.remove();
}
}
如果必须使用数组
,您有两个选择:
- 将
seat.buttonArray[i]
设置为null
值,表示已被删除; - 每次删除某些内容时都会重新创建数组。请参阅System.arraycopy javadoc 了解详细信息,尽管出于性能考虑我不推荐这种方法。
关于java - 如何从数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255669/