[11] equals 를 재정의하려거든 hashCode도 재정의하라
Last updated
Last updated
package item11;
import java.util.Objects;
public class User {
int age;
String name;
String phoneNumber;
public User(int age, String name, String phoneNumber) {
this.age = age;
this.name = name;
this.phoneNumber = phoneNumber;
}
// @Override
// public boolean equals(Object o) {
// if (this == o) return true;
// if (o == null || getClass() != o.getClass()) return false;
// User user = (User) o;
// return age == user.age && Objects.equals(name, user.name) && Objects.equals(phoneNumber, user.phoneNumber);
// }
//
// @Override
// public int hashCode() {
// return Objects.hash(age, name, phoneNumber);
// }
}
public class Main {
public static void main(String[] args) {
final Map<User, String> userMap = new HashMap<>();
User user1 = new User(20, "홍길동1", "010-1234-1234");
User user2 = new User(20, "홍길동2", "010-1234-1235");
userMap.put(user1, "hello");
userMap.put(user2, "world");
System.out.println(userMap.size());
System.out.println(userMap.get(user1)); // hello
System.out.println(userMap.get(user2)); // world
System.out.println(userMap.get(new User(20, "홍길동2", "010-1234-1235"))); // null
}
} User user1 = new User(20, "홍길동1", "010-1234-1234");
User user2 = new User(20, "홍길동2", "010-1234-1235");
User user3 = new User(20, "홍길동2", "010-1234-1235");
userMap.put(user1, "hello");
userMap.put(user2, "world");
userMap.put(user3, "world");
System.out.println(userMap.size());