hashCode () 방법 및 equals () 방법에 대한 설명

8731 단어 hashCode()
1, 일반적으로 우리가 사용할 때 equals() 방법만 사용하여 두 대상이 업무 상등가인지 아닌지를 판단하는 데 사용한다.2, equals () 방법을 다시 쓸 때,hashCode () 방법도 다시 쓰는 것을 강력히 추천합니다. 왜냐하면 어떤 집합은hashCode () 를 사용하여 효율을 높일 수 있기 때문입니다.equals가true인 대상의hashCode값은 반드시 같아야 한다.equals가false인 대상의hashCode값은 가능한 한 다르다.3, 도구를 사용하여 hashCode()와 euqals() 방법을 자동으로 생성할 수 있습니다.
 
 1 package com.zsy.study;
 2 
 3 public class User {
 4     private Integer id;
 5     private String name;
 6     public Integer getId() {
 7         return id;
 8     }
 9     public User(){}
10     public User(Integer id) {
11         super();
12         this.id = id;
13     }
14     public void setId(Integer id) {
15         this.id = id;
16     }
17     public String getName() {
18         return name;
19     }
20     public void setName(String name) {
21         this.name = name;
22     }
23     
24 }

테스트 코드
 1 public class TestEquals {
 2 
 3     @Test
 4     public void test() throws Exception {
 5         Set<User> set = new HashSet<User>();
 6 
 7         // User user = new User(1);
 8         // set.add(user);
 9         // set.add(user);
10 
11         set.add(new User(1));
12         set.add(new User(1));
13         set.add(new User(1));
14 
15         System.out.println(set.size());
16     }
17 
18     @Test
19     public void test2() throws Exception {
20         System.out.println("aa" == "aa"); // true
21         System.out.println(new String("aa") == new String("aa")); // false
22         System.out.println("aa" == new String("aa")); // false
23 
24         System.out.println("aa".equals(new String("aa"))); // true
25     }
26 
27     @Test
28     public void test3() throws Exception {
29         Set<User> set = new HashSet<User>();
30 
31         User user = new User(); // id = 0
32         set.add(user);
33 
34         // session.save(user); // id = 5
35         user.setId(5);
36         set.add(user); // user.hashCode() == eltOldhashCode;
37 
38         // set.add(user);
39         System.out.println(set.size());
40     }
41 }

Junit를 가져와야 합니다.jar 테스트 클래스

좋은 웹페이지 즐겨찾기