java - 无法将对象删除到 ArrayList
问题描述
我不知道如何从ArrayList
. 我知道有删除,但就我而言,它更复杂。
我有一个(listsBlocksRemaining),其中包含有打印时ArrayList
我放入另一个(listBlocksIntoRibbon)的对象。ArrayList
然后,我想要的是,打印的对象应该从 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 );
推荐阅读
- npm - 窗口无法打开 ElectronNET/Electron.NET 应用程序
- android - 如何在 Android 继承的 Activity 类中创建 Handler 和 Runnable 对象
- php - 有没有人有使用 php yii 应用程序的 G Suite SSO 的经验?
- javascript - 将类添加到 svg 类的 Javascript 代码未在 html 中显示
- python - Pandas:创建某些名称的 total_count 列
- r - 从民主辩论中划定文本
- javascript - 页面因未知原因冻结
- c++ - 如何返回函数的指针并用作参数?
- hadoop - HDFS 空间配额 - 如果父文件夹的配额少于其子文件夹怎么办
- c# - ManualResetEventSlim 阻塞线程,即浪费它们?