Java ArrayList的ArrayList中的remove()无效
我声明以下两个类:Java ArrayList的ArrayList中的remove()无效,java,arraylist,Java,Arraylist,我声明以下两个类: public class formula { ArrayList<values> var= new ArrayList<values>; } public class values { int val; void addval(int val1) { val=val1; } } 其中,i是一个循环变量 我没有得到任何错误,它编译得很好,但是没有删除公式(I)的var(b)实例。价
public class formula
{
ArrayList<values> var= new ArrayList<values>;
}
public class values
{
int val;
void addval(int val1)
{
val=val1;
}
}
其中,i
是一个循环变量
我没有得到任何错误,它编译得很好,但是没有删除公式(I)
的var(b)
实例。价值仍然存在。怎么了?我根本不使用迭代器,只使用循环遍历formula()
的所有实例
b
是一个整数。本质上是我试图删除的var arraylist中元素的索引。在使用集合API时,必须重写equals和hashcode。否则,您将在代码中看到许多不可预知的结果
如果您是Java新手,请养成覆盖equals、hashcode和toString方法的习惯 在使用集合API时,必须重写equals和hashcode。否则,您将在代码中看到许多不可预知的结果
如果您是Java新手,请养成覆盖equals、hashcode和toString方法的习惯 如果b=键,它最好是一个value对象。这里,对象b应该具有与键相同的哈希代码,并且equals()方法应该返回true。在Java中,要将两个对象obj1和obj2视为相同,应满足以下条件
如果b=键,它最好是值对象。这里,对象b应该具有与键相同的哈希代码,并且equals()方法应该返回true。在Java中,要将两个对象obj1和obj2视为相同,应满足以下条件
很可能您没有覆盖hashCode和值上的equals。没有发布足够的代码来告诉您。这是如何工作的“public class formula()”?我向您保证这不会编译为“fine”。当我发布程序中的代码片段时,这似乎每天都会发生@MarkPeters怎么了?@Flouse:编译器告诉你怎么了?我希望您能够尝试编译您在这里发布的代码段。很可能您没有覆盖hashCode和equals的值。没有发布足够的代码来告诉您。这是如何工作的“public class formula()”?我向您保证这不会编译为“fine”。当我发布程序中的代码片段时,这似乎每天都会发生@MarkPeters怎么了?@Flouse:编译器告诉你怎么了?我希望您能够尝试编译您在这里发布的代码片段。
ArrayList<formula> S= new ArrayList<formula>;
S.get(i).var.remove(b);