Equal ArrayLists(Java)

时间:2017-05-22 18:34:25

标签: java arraylist

.containsAll会工作,但.equals不起作用。

3 个答案:

答案 0 :(得分:2)

您每次都会添加这些数字。您应该使用局部变量或本地初始化。否则,每次调用函数时,您的密码列表都会获得5个以上的数字。

答案 1 :(得分:0)

因为你说的是​​“安全键盘”,我不得不说忽略其他人所说的技术上正确的,你做错了。通过以“普通”格式存储密码,您可以在键盘上留下粘滞便笺,上面有密码。

您应该做的是对输入和密码进行散列并比较散列版本。并且不要使用hashCode(),该函数不可靠用于此目的。 (how to hash)的例子

另外,根据Java Docs,equals是正确的检查方法。您错过了处理列表实例。您应该单步执行调试器,以查看代码中的任何位置,以便执行更改全局变量的操作。

答案 2 :(得分:-1)

我认为您在比较阵列时遇到问题。看看这个问题:equals vs Arrays.equals in Java

if (digitList.size() == 5 && digitList.equals(passcode)) { // are the arrays the same array?
            guideArea.setText("Correct Password.");
            digitList.clear();
 }

应该是什么:

if (digitList.size() == 5 && Arrays.equals(digitList, passcode)) { // are the two arrays CONTENT the same
            guideArea.setText("Correct Password.");
            digitList.clear();
  }
相关问题