我不知道如何从 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/