gpt4 book ai didi

java - 尝试使用 .contains() Java 方法

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

这是我的“主要”代码:

ArrayList<Person> people = new ArrayList<Person>();

people.add(new Person("Aaron Morgan", 31));
people.add(new Person("Faye Palmer", 27));
people.add(new Person("Dexter Koh", 33));
people.add(new Person("Sallie Axl", 25));

if (people.contains(new Person("Adam Kelly", 48)))
{
System.out.print("MATCH FOUND");
}

else
{
System.out.print("MATCH NOT FOUND");
}

我正在尝试创建一种方法,将“Adam Kelly”与数组列表中的人员列表进行比较。我可以将“Adam Kelly”纳入方法中,但是我不确定如何在类/方法中比较它。

有人能解释一下吗?

最佳答案

在您的 Person 类中实现 .equals() :

@Override
public boolean equals(Object o) {
if(o == null) { return false; }
if(!(o instanceof Person)) { return false; }

Person person = (Person) o;
return this.name.equals(person.getName()) && this.age == person.getAge();
}

.contains() 方法将根据其 .equals() 表示形式查找现有值。引用类型的标准实现只是内存中对象的地址位置。由于您有两个不同的对象,这将返回不同的地址,因此不会找到它。

您要做的就是创建自己的实现,使用您想要的字段。

关于java - 尝试使用 .contains() Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058209/

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