当前位置: 首页 > 知识库问答 >
问题:

'contains'方法对ArrayList不起作用,还有其他方法吗?

谷梁云瀚
2023-03-14

如果ArrayList中还没有int[],我希望将int[]添加到ArrayList中,但由于某些原因,它无法工作。在本例中,arrlist是arraylist ,arr是int[]。此代码位于for循环中,其中arr在循环中定义,因此arr中的值会更改。即使我打印出arrlist并且它有arr,代码总是说arrlist不包含arr。是否有其他方法可以检查ArrayList是否包含int[]

java prettyprint-override">int n = scan.nextInt();
ArrayList<int[]> arrlist = new ArrayList<>();
int[][] coordinates = new int[n][2];
boolean[] isTrue = new boolean[n];
for (int j = 0; j < n; j++) {
    int[] arr = new int[2];
    arr[0] = coordinates[j][0];
    arr[1] = coordinates[j][1];
    if (arrlist.contains(arr)) {
        isTrue[j] = true;
    } else {
        arrlist.add(arr);
    }
}

共有1个答案

仇迪
2023-03-14

请考虑以下代码

   int[] a = { 1, 2 };
   int[] b = { 1, 2 };
   System.our.println(a.equals(b));

你明白为什么输出是“false”了吗?

这就是您的问题的原因:根据'equals'方法,内容相等的两个数组不相等,该方法在这里显式调用,在List<>示例中隐式调用。

  class Point {
       int x, y;
       Point(int x, int y) {
          this.x = x;  this.y = y; 
       }
       boolean equals(Object o) {
           return o instanceof Point && 
                  x == ((Point)o).x && 
                  y == ((Point)o).y;
       }
   }
 类似资料:
  • 问题内容: 我正在学习有关Java的知识,并且一直困扰着这个问题:当我尝试使用简单的方法(例如)时,编译器给我错误。这是代码: 该方法在Javadoc中定义。 这样做应该很简单,但是我真的不知道我在做什么错。 问题答案: 您已经创建了自己的类,并且没有使用内置的Java类。您尚未定义。

  • 问题内容: 我正在尝试捕获WebBrowser控件的内容。可以完美地工作,但是WebBrowser控件的文档中不支持它。我一直在尝试寻找另一种捕获WebBrowser控件的内容并将其保存到本地图像文件的方法。 是否有人有任何变通办法或其他方法将WebBrowser控件的内容保存到本地图像文件? 问题答案: Control.DrawToBitmap并不总是能正常工作,因此我诉诸于以下提供更一致结果的

  • 好的,这是我的代码的一个紧凑版本 IDE(Eclipse)在emparray.add行上给出了以下错误 无法对非静态emparray进行静态引用 EmployeeClass无法解析为变量 令牌obj语法错误,请删除此令牌。 null

  • 用户: 2)编写UserGroup类 UserGroup类必须有用户的ArrayList。 和我的UserGroup类: 这显然远远没有完成,但我完全被困住了。我的第一个问题是我不确定如何为此编写get方法。请帮帮我!!我认为我的User类很好,但我的UserGroup类远没有完成所有的目标,我不知道如何实现它们!!

  • 问题内容: 假设我创建一个对象并将其添加到我的对象中ArrayList。如果我随后使用完全相同的构造函数输入创建另一个对象,则该方法将两个对象评估为相同吗?假设构造函数对输入没有任何有趣的事情,并且存储在两个对象中的变量相同。 请问该如何实现退货? 问题答案: ArrayList 列表接口。 如果你在中查找该方法,则会看到它使用该方法来评估两个对象是否相同。

  • 问题内容: 我执行了以下代码,发现输出为。 我想知道它的行为以及为什么输出是。 问题答案: 您还需要覆盖方法。这两种方法都用于适当的功能,因此必须被覆盖在 用户定义的类 ,如果你制作的作为,其他的类习惯并没有两个不同的可被视为与它们的将永远是不同的,并且肯定会在情况下总是返回。