본문 바로가기

Java/Java_Tree ,Hash(Set,이진검색트리,해싱,,,,)

Java_TreeSet, 이진 검색 트리 (binary search tree), HashMap & HashTalbe, 해싱 & 해싱함수, TreeMap, Properties, Collections

반응형

TreeSet 

- 이진 검색 트리 (binary search tree) 라는 자료구조의 형테

- 정렬, 검색, 범위검색 에 높은 성능을 갖고 있다.

- 중복된 데이터 저장 허용 X 

- 정렬된 위치에 저장하므로 저장순서를 유지 X

- 노드간의 연결된 모양

- 부모노드의 왼쪽에는 부모노드의 값보다 작은값의 자식노드 , 오른쪽에는 큰 값의 자식노드를 저장

 

*이진 검색 트리 구조 

*이진 검색 트리 구조 

 

*이진 검색 트리 구조 

 

 

- TreeSet에 저장되는 객체가 Comparable을 구현하던가 Comparator를 제공해서 두객체를

   비교할 방법을 알려줘야한다 그렇지 못하면 TreeSet에 객체를 저장할 때 예외발생

 

 

 

 

 

 

 

** TreeSet :   정렬, 검색, 부분 검색 성능 빠르지 설명.. 이해... 

 

 

 

이진 검색 트리 (binary search tree) 

 - 모든 노드는 최대 두 개의 자식노드를 가질 수 있다. // 세개이상 ㄴㄴ

 - 왼쪽 자식노드의 값은 부모노드의 값보다 작고 오른쪽 자식노드의 값은 부모노드의 값보다 커야함

 - 노드의 추가 삭제에 시간이 걸림 (순차적으로 저장하지 X)

 - 검색과 정렬에 유리

 - 중복된 값을 저장 X

 

 

 

 

* HashMap & HashTalbe

- String클래스 사용이 불변

- StringBuffer 쓰레드 동기화 처리 O

- StringBuilder 쓰레드 동기화 처리 X

 

*Array

- ArrayList   =  동기화 처리 X

- Vector      =  동기화 처리 O

 

- HashMap   =  동기화 처리 X     //     새로나온 것이라서 [권장.] key,value - null 허용

- HashTable  =  동기화 처리 O

 

동기화 처리 O = StringBuffer, Vector, HashTable 해싱기법(hashing)많은 양 검색할때 성능이 뛰어나다

동기화 처리 X = StringBuilder, ArrayLis, HashMap

 

* Map 계열의 특징 : (key + value) == entry 엔트리

- 중복 x 중복 o

- 유일

 

 * 제네릭
 < K, V>  Key, Value
 

*Key  

- Element
- Type
-자료형 (대문자)

 

 

 

 

해싱 & 해싱함수

  [해싱] : (해시함수)를 이용해서 데이터를 (해시테이블)에 저장하고 검색하는 [기법].
  [해시함수] : 데이터가 저장되어 있는 곳을 알려준다. 다량의 데이터에서도 원하는 데이터를 빠르게 찾을 수 있다.
       - 해싱을 구현한 컬렉션 클래스 : Hashtable, HashSet, HashMap
       - 해싱기법 = 배열 + linkedList(자료 구조)

        Properties 컬렉션 클래스
       1. HashMap의 구버전(권장)
       2. Hashtable을 상속받아 구현.
       3. 특징 : Map계열 
                  key-value
                  String-String (key와 value 자료형이 String)
       4. 사용 : 어플리케이션의 환경설정
                   데이터를 파일로부터 읽고/쓰기 작업.

 

 

 

TreeMap

- 이진검색트리의 형태로 키와 값이 쌍우로 이루어진 데이터를 저장

- 검색과 정렬에 적합한 컬렉션 클래스

- HashMap이 TreeMap보다 더 뛰어나므로 HashMap 사용을 권장

  (하지만!) 범위검색이나 정렬이 필요한 경우 TreeMap 사용

 

 

 

Properties

- HashMap의 구버전인 Hashtable 상속 구현한 것

- Hashtable은 키와 값을 Object형태로 저장하는데 Properties는 String 형으로 단순화된 컬렉션 클래스

- 애플리케이션의 속성을 저장하는데 사용

- 데이터를 파일로부터 읽고 쓰기를 제공

- 저장한 키 (key) 값을 읽어오는데 존재하지 X 면 지정된 기본값을 반환

- 저장순서를 유지하지 X

 

 

 

Collections

- Arrays 가 배열과 관련된 메서드를 제공하는 것 처럼 컬렉션은 fill(), copy(), sort(), binarySearch() 등

  컬렉션클래스에서도 모두 포함되어 있으며 같은 기능을 함.

- 동기화

 

<주의!>

Collection = 인터페이스

Collections = 클래스

반응형