主函数类
package com.hzk.hello;
import java.util.ArrayList;
import java.util.List;
/**
* @author 作者:hzk
* @version 创建时间:2019年3月29日 上午10:51:06
* 类说明
*/
public class JudgeEquals {
public static void main(String[] args) {
User user1=new User("hzk","nan");
User user2=new User("hzk","nan");
User user3=new User("hzk","na");
List<User> list=new ArrayList<User>();
list.add(user1);
list.add(user3);
System.out.println(list.contains(user2));
if(!list.contains(user2)){
list.add(user2);
}
for(User user:list){
System.out.println(user.getName()+"|"+user.getSex());
}
}
}
自定义对象类(主要是重写一个equals方法,如果不写的话即使对象的各个字段内容全部一样也会认为是不一样的对象)
package com.hzk.hello;
import java.util.Objects;
/**
* @author 作者:hzk
* @version 创建时间:2019年3月29日 上午10:51:38
* 类说明
*/
public class User {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public User(String name, String sex) {
this.name = name;
this.sex = sex;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true; //先判断o是否为本对象,this 指向当前的对象
if (o == null || getClass() != o.getClass())
return false; //再判断o是否为null,和o.类对象和本类对象是否一致
User user = (User) o; //再把o对象强制转化为User类对象
return Objects.equals(name, user.name) &&
Objects.equals(sex, user.sex); //查看两个对象的name和sex属性值是否相等
}
}