19.04.12 API, java.lang / java.util 패키지, 해시코드

Back-End/Java 2019. 4. 12. 14:46
728x90
반응형

-API 도큐먼트-


쉽게 API를 찾아 이용할 수 있도록 문서화 한 것




-구성-


좌측 상단 : 패키지 전체 목록
좌측 하단 : 클래스와 인터페이스 목록
중앙 부분 : 좌측 하단에서 선택한 클래스나 인터페이스에 대한 상세 설명
└상단 : 클래스가 포함된 패키지 정보, 상속 정보, 인터페이스 구현 정보
 └중앙 : 클래스의 설명과 사용방법을 간략하게 보여준다.
  └하단 : 필드, 생성자, 메소드의 목록을 보여준다.




-java.lang 패키지-


자바 프로그램의 기본적인 클래스를 담고 있는 패키지
 └종류 : Object, System, Class, String 등




-java.util 패키지-


컬렉션 클래스들이 대부분을 차지한다.
 └종류 : Arrays, Calendar, Date, Objects, StringTokenizer, Random




-Object 클래스-


클래스 선언시 extends 키워드로 다른 클래스를 상속하지 않으면 상속하는 클래스.
따라서 java의 모든 클래스는 Object클래스의 자식이거나 자손 클래스이다.




-객체 해시코드(hashCode())-


객체를 식별할 하나의 정수값.
Object의 hashCode()메소드는 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하기 때문에
객체마다 다른 값을 가지고 있다.




-해시코드 사용이유-


equals만 가지고는 HashMap, HashSet와 같이 Key,Value의 쌍으로 구성되는 자료구성에서 제대로 작동하지
않기 때문에 equals와 해시코드를 같이 사용해서 객체를 식별한다.




-객체의 동등 비교-



Object의 equals()메소드와 hashCode() 메소드를 같이 재정의해서 동등 객체일 경우 동일한 해시코드가
리턴되도록 해야한다.




-예제 및 출력 결과-


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.hs.chap11;
 
public class Key {
    public int number;
    
    public Key(int number) 
    {
        this.number = number;
    }
    
    @Override //해시코드의 리턴값을 number의 필드값으로 했기 때문에 같은 해시코드가 리턴된다.
    public int hashCode() 
    {
        return number;
    }
    
    @Override
    public boolean equals(Object obj) 
    {
        if(obj instanceof Key) 
        {
            Key compareKey = (Key) obj;
            if(this.number == compareKey.number) 
            {
                return true;
            }
        }
        return false;
    }
}
 
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.hs.chap11;
 
import java.util.HashMap;
 
public class KeyExample {
 
    public static void main(String[] args) {
        //Key 객체를 식별키로 사용해서 String 값을 저장하는 HashMap 객체 생성
        HashMap<Key,String> hashMap = new HashMap<Key, String>();
        
        //식별키 "new Key(1)"로  "홍길동"을 저장함
        hashMap.put(new Key(1),"홍길동");
        
        //식별키 "new Key(1)"로 "홍길동"을 읽어옴
        String value = hashMap.get(new Key(1));
        System.out.println(value);
    }
}
 
cs





728x90
반응형
: