gpt4 book ai didi

java - 从 ArrayList 中删除不起作用

转载 作者:行者123 更新时间:2023-12-01 17:20:42 24 4
gpt4 key购买 nike

for(JCheckBox currentCheckBox : imagesToBeImportedCheckBox){ 
if(currentCheckBox.isSelected()){
System.out.println("The text Box selected for removing are"+currentCheckBox.getText());
}

}
for(JCheckBox currentCheckBox : imagesToBeImportedCheckBox){

if(currentCheckBox.isSelected()){
System.out.println("I am entering in the loop where this image has to be removed "+currentCheckBox.getText());
imagesToBeImported.remove(currentCheckBox.getText());

}

}
for(ResourceListObject currentImage : imagesToBeImported){

System.out.println("After removing the images left are "+currentImage.getName());

}

这是输出

选择删除的文本框是aix71b

选择删除的文本框是迁移图像

我正在进入必须删除该图像的循环aix71b

我正在进入必须删除该图像的循环迁移图像

删除图像后剩下的是aix71b

删除后剩下的图像是迁移图像

最佳答案

查看您的代码,很可能这就是问题所在。

imagesToBeImported.remove(currentCheckBox.getText());

这会尝试从集合 imagesToBeImported 中删除名为 aix71bString(getText() 提示我在此处说出 String) 但集合 imagesToBeImported 包含 ResourceListObject 类型的元素。

这就是为什么没有从您的 Collection 中删除任何内容,因为 StringResourceListObject 不是同一类型。

编辑:-(您可以使用以下两种方式从列表中删除)

您可以遍历 imagesToBeImported(使用迭代器)查找 imagesToBeImportedCheckBox 的每个元素,并从 imagesToBeImported 中删除元素code> 每当 resourceListObjectElement.getName() 等于 currentCheckBox.getText() 时。

或者,您可以根据 ResourceListObject 中的 name 字段重写 equals 方法,以便您可以执行某些操作像这样将其从您的 imagesToBeImported 中删除。

imagesToBeImported.remove(new ResourceListObject(currentCheckBox.getText()));
// You need to add another constructor in your ResourceListObject class which takes in only the name field as the parameter.

关于java - 从 ArrayList 中删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com