java - 如何从数组中删除对象

标签 java jbutton

可能难以理解,敬请谅解

我有一个 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/

相关文章:

java - Java RegEx 组否定是否可能?

java - 用于存储数据库数据的 ResultSet 替代方案

java - Eclipse - 我正在寻找 View 。显示今天修改的文件

java - 如何让 JButton 运行依赖于用户在 JComboBox 中选择的内容的类

java - jTable 中的 jButton 不可点击

java - 如何从 Java 中的 ArrayList 中删除特定对象?

java - 使用 Java 以编程方式发送传真

Java : issue with actionlistener and retrieving textbox input

java - 使 JFrame 充当对话框

java - 在运行时在 netbeans 中创建组件