java - 无法将对象删除到 ArrayList 中

标签 java arraylist

我不知道如何从 ArrayList 中删除对象。我知道有删除,但就我而言,它更复杂。

我有一个ArrayList (listsBlocksRemaining),其中包含在打印时放入另一个ArrayList (listBlocksIntoRibbon) 的对象。然后,我想要的是,打印的对象应该从 listBlocksRemaining 中删除,因为有打印,所以不再剩余。

这是我的代码:

public void algoGlouton(Graphics g) {

    int offsetX = 13;
    int offsetY = 600;
    int widthAvailable= 0;
    int smallestHeight= 300;
    for(Bloc b : listsBlocksRemaining) {
        if(widthRemaining+b.getWidth () < ribbon.getWidth ()) {
            widthAvailable+= b.getWidth();
             g.setColor(b.getColor());
             g.fillRect(offsetX, offsetY-b.getHeight(), b.getWidth(), b.getHauteur());
             listBlocksIntoRibbon.add(b);
             b.setX(offsetX);
             b.setY(offsetY-b.getHauteur());
             offsetX += b.getLargeur();
        } else {
            for(Bloc b1 : listBlocksIntoRibbon) {
                if(b1.getHauteur() < smallestHeight) {
                    smallestHeight= b1.getHeight();
                }
            }
        }
    }
}

我尝试过这个:

for(int i = 0; i<listsBlocksRemaining.size();i++) {
        for(int j = 0; j<listBlocksIntoRibbon.size();j++) {
            if(listsBlocksRemaining.get(i) == listBlocksIntoRibbon.get(j)) {
                listsBlocksRemaining.remove(i);
            }
        }
}

还有这个:

for(int i = 0; i<listsBlocksRemaining.size();i++) {
        Bloc b = listsBlocksRemaining.get(i);
        if(listBlocksIntoRibbon.equals(b)) {
            listsBlocksRemaining.remove(b);
        }
}

诚挚的

最佳答案

您无需在 listBlocksRemaining 中找到该对象即可将其删除。您可以从列表中删除该对象,如下所示:

for( Bloc bloc : listBlocksIntoRibbon )
  listBlocksRemaining.remove(bloc);

甚至:

listBlocksRemaining.removeAll( listBlocksIntoRibbon );

关于java - 无法将对象删除到 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767115/

相关文章:

java - 并行使用 ArrayList

java - 无法解析 getter 方法

java - 如何将对 new 的调用重构为带参数的方法调用?

java - 字符串格式查询

java - JWebBrowser如何动态导航

java - 如何从 Adapter 获取 itemList.size() 或 itemList 到 MainActivity

Java与PHP的socket通信问题

java - arraylist 迭代器 equals 返回 java.util.NoSuchElementException

java列表无法添加类然后更改原始类而不更改列表中的副本

java - ArrayIndexOutOfBounds 错误