gpt4 book ai didi

java - 使用 equals() 比较 2 ArrayList 的相等性

转载 作者:行者123 更新时间:2023-12-01 17:18:08 25 4
gpt4 key购买 nike

我有两个ArrayList,分别是ArrayList<int[]> 。我想看看它们是否相同。相同是指相同的长度、相同的内容和相同的顺序。我正在比较 ArrayList,如下所示:

public boolean isWon() {

if(getAllBtnCoords().equals(getAllTVCoords())) {
Toast.makeText(getApplicationContext(), "YOU WON!", Toast.LENGTH_LONG).show();
return true;
} else {
Toast.makeText(getApplicationContext(), "NOT YET...", Toast.LENGTH_LONG).show();
return false;
}
}

我什至创建了一个 ArrayList<int[]> ,然后创建一个新变量并将其设置为等于已创建的 ArrayList<int[]>所以我 100% 确定它们是相同的。然后我运行 isWon()方法,它总是返回 false。

我做错了什么?我是否使用了错误的equals()功能?进行比较?

最佳答案

ArrayList<int[]>是整数数组的列表。所以看起来您或多或少正在尝试比较二维数组。当您使用equals时在ArrayList上或任何其他List ,它比较 List 的每个元素使用equals元素类型的函数。

问题是像 int[] 这样的数组没有特殊的equals功能。数组是对象,默认equals for 对象比较引用以查看它们是否相等。所以使用 .equals关于ArrayList将返回true如果 ArrayList 的元素,分别是int[] ,都是相同的引用。它不会检查 int[] 的元素数组。

要么你需要自己用循环来做这件事;或者将您的类型设为 ArrayList<ArrayList<Integer>> ,这将使得 equals工作正常。

关于java - 使用 equals() 比较 2 ArrayList<int[]> 的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616242/

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