java arraylist存储对象,查找集合是否有包含某个元素的对象
时间: 2024-02-25 19:58:01 浏览: 85
要查找一个Java ArrayList中是否包含某个元素的对象,需要重写该对象的equals()方法和hashCode()方法,使得它们能够正确比较对象之间的相等性。然后使用ArrayList的contains()方法来查找元素是否存在于集合中。
例如,假设我们有一个Person类,它有name和age两个属性,我们希望查找一个ArrayList<Person>中是否包含一个特定的Person对象。我们可以按照如下方式实现:
```java
public class Person {
private String name;
private int age;
// 构造函数、getter和setter方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
// 在某个方法中使用ArrayList进行查找
ArrayList<Person> persons = new ArrayList<>();
Person p1 = new Person("Alice", 20);
persons.add(p1);
Person p2 = new Person("Bob", 25);
persons.add(p2);
Person p3 = new Person("Alice", 20);
boolean contains = persons.contains(p3); // contains为true,因为p1和p3相等
```
在代码中,我们重写了Person类的equals()方法和hashCode()方法,使得它们能够正确比较两个Person对象之间的相等性。然后我们使用ArrayList的contains()方法来查找集合中是否包含一个指定的Person对象。由于p1和p3相等,因此contains的结果为true。
阅读全文