Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList的ArrayList中的remove()无效_Java_Arraylist - Fatal编程技术网

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中,要将两个对象obj1obj2视为相同,应满足以下条件

  • obj1.hashCode()==obj2.hashCode()
  • obj1.等于(obj2)=真

  • 如果b=键,它最好是对象。这里,对象b应该具有与键相同的哈希代码,并且equals()方法应该返回true。在Java中,要将两个对象obj1obj2视为相同,应满足以下条件

  • obj1.hashCode()==obj2.hashCode()
  • 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);