List的contains方法用于判断对象是否存在于列表中。
举例说明:
这里简单的创建一个User类:
public class User {private String id;private String name;private String phone;private String address;//忽略getters和setters
}
在main方法中创建3个User对象,并使他们的值相等。
User u1 = new User();u1.setId("1111111");u1.setName("name1");u1.setAddress("add1");u1.setPhone("pn111");User u2 = new User();u2.setId("1111111");u2.setName("name1");u2.setAddress("add1");u2.setPhone("pn111");User u3 = new User();u3.setId("1111111");u3.setName("name1");u3.setAddress("add1");u3.setPhone("pn111");
创建一个List,并将u1和u2添加到list中
List<User> users = new ArrayList<User>();users.add(u1);users.add(u2);
此时,判断u3是否存在于list中必然是false,因为u3与list中任何一个对象的地址都不相同:
在这里插入图片描述
那么,如果我们只需要u3的name属性能相等于list中任一对象的name属性,就判断u3是存在于list中呢?这时候需要重写User类的equls方法:
public boolean equals(Object o) {if(o==null) {return true;}User obj = (User)o;if(name.equals(obj.name)) {return true;}return false;}
这时候返回的值就是true了:
在这里插入图片描述。