我必须从列表中删除元素 但仅通过比较它的 ID(类中的变量) 所以我在类实现了类似的措施 但它没有删除
class data implements Comparable<data>{
int id;
int data;
data(int i,int d) {
id=i;
data=d;
}
@Override
public int compareTo(data o) {
if(id==o.id)
return 0;
return -1;
}
}
public class trial {
public static void main(String[] args) {
List<data> newone = new ArrayList<>();
data o1= new data(1,2);
data o2= new data(1,3);
System.out.println("Added");
newone.add(o1);
System.out.println(o1.id);
System.out.println(o2.id);
if(newone.contains(o2)) {
newone.remove(o2);
System.out.println("found");
}
if(newone.isEmpty())
System.out.println("Deleted");
System.out.println("finsihed");
}
最佳答案
使用Iterator
类迭代列表,然后使用remove方法删除元素,否则您可能会遇到一些问题“并发修改异常”。
另外ArrayList的contains
方法使用了列表元素的equals
方法,所以需要在列表中实现equals方法类数据
关于java - 从列表和比较器 java 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359561/