[英]What parameters should I use for the contains() method?
我不太了解应将哪些参数传递给contains()方法。 我有自己的名为Name的类,该类由2个字符串(firstName,secondName)组成。 我创建了一个Name类型和2个Name对象的ArrayList,这些对象具有相同的名称,例如(“ Joe,” Bloggs“)2x。因此,我必须通过哪些参数来检查其是否有效,我已经正确地覆盖了Name的equals方法类,这是我的主要程序:
import java.util.ArrayList;
public class EqualsTest {
public static void main(String[] args) {
ArrayList<Name> names = new ArrayList<Name>();
names.add(new Name("Joe", "Bloggs"));
names.add(new Name("John", "Smith")); //<--
names.add(new Name("Alan", "Wake")); // | the same name
names.add(new Name("Robert", "High"));// |
names.add(new Name("John", "Smith")); //---
names.contains(Name("Joe", "Bloggs"));
}
}
假设您在Name
类中正确覆盖了equals
,则应为:
if (names.contains(new Name("Joe", "Bloggs"))) {
...
}
您可以使用
names.contains(new Name("Joe", "Bloggs"));
但是您应该重写Name类中的equals()
方法以按预期工作。
每当您需要处理Java
集合框架工作时,最好在类中同时覆盖equals()
和hashCode()
方法,否则最终会陷入混乱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.