gpt4 book ai didi

java - 将对象与对象的数组列表进行比较

转载 作者:行者123 更新时间:2023-11-30 05:27:44 25 4
gpt4 key购买 nike

我创建了两个类,一个驱动程序和一个 GUI 框架类。在驱动程序类中,我放置了用户对象的数组列表。但是当从 GUI 框架类调用方法时,返回的值为 0。

我尝试使用 foreach 循环来隐式比较每个对象。

这是我用来将临时用户的对象与现有用户进行比较的方法。

public boolean confirm(boolean loggedIn, int tempStudentNo, int tempPin) {

//Creation of temporary object for comparison with existing one
DriverMain temp = new DriverMain(tempStudentNo, tempPin);

if (getCreation().contains(temp)) {
System.out.println("user pass");
setLoggedIn(true);
}

else {
System.out.println("user fail");
}
return loggedIn;

}

我希望用户能够通过。但结果总是“用户失败”。 任何帮助将不胜感激:)

最佳答案

此答案基于您对以下评论的回复:“您的 DriverMain 类是否重写 equals 方法?”...

为了使用 (Array)List、HashTable、HashSet 或 HashMap 等,您需要重写 DriverMain 类中的“几个”方法。对于列表、集合等以及其他一些集合类型或映射/哈希表来评估您的对象是否是其内容的成员,您需要为其提供一种方法来比较您传递给它的对象和对象目前它成立。

列表
contains(Object o) 方法使用对象的 equals(Object o) 方法将对象 o 与任何对象 x(列表集合的成员)。

有关此内容的更多信息,请访问以下链接:https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/list.html

设置
contains(Object o) 方法使用对象的 hashCode()equals(Object o) 方法来比较对象 o 到任何对象 x(Set Collection 的成员)。

有关此内容的更多信息,请访问以下链接:https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html

map
containsKey(Object o) 方法使用对象的 hashCode()equals(Object o) 方法来比较对象 o 到任何对象x( map 接口(interface)的成员)。

有关此内容的更多信息,请访问以下链接:https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

重要说明有更多方法可以解决这种情况,所有方法都取决于其实现。例如:TreeSetTreeMap 不使用 hashCode() 方法。

关于java - 将对象与对象的数组列表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58213651/

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