arraylist的contains方法怎么判断自定义的类
时间: 2023-06-24 22:08:21 浏览: 167
ArrayList的contains方法是通过调用参数对象的equals方法来判断是否包含该对象的。因此,如果要在ArrayList中判断自定义的类,需要重写该类的equals方法。
例如,假设我们有一个自定义的类Person:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person otherPerson = (Person) obj;
return this.name.equals(otherPerson.name) && this.age == otherPerson.age;
}
}
```
在这个示例中,我们重写了equals方法,根据Person对象的name和age属性来判断两个对象是否相等。
使用ArrayList的contains方法判断该类的示例代码如下:
```
Person person1 = new Person("Alice", 25);
Person person2 = new Person("Bob", 30);
ArrayList<Person> personList = new ArrayList<>();
personList.add(person1);
personList.add(person2);
Person person3 = new Person("Alice", 25);
if (personList.contains(person3)) {
System.out.println("person3 is in the list.");
} else {
System.out.println("person3 is not in the list.");
}
```
在这个示例中,我们创建了一个包含两个Person对象的ArrayList,并创建了一个新的Person对象person3,其name和age属性与person1相同。然后,我们使用ArrayList的contains方法来判断personList中是否包含person3,由于我们重写了Person类的equals方法,因此该判断会返回true。
阅读全文