Java의 정석 (컬렉션 프레임웍)1-3

ITKHJ·2023년 2월 23일
0

Java

목록 보기
8/12
post-thumbnail

HashMap과 Hashtable

-Hashtable과 HashMap의 관계는 Vector와 ArrayList의 관계와 같아서 Hashtable보다는 새로운 버전인 HashMap을 사용할 것을 권한다.

-HashMap은 Map을 구현했으므로 앞에서 살펴본 Map의 특징 키와 값을 묶어서 하나의 데이터로 저정한다는 특징을 갖는다. 그리고 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다.

해싱과 해시함수

-해싱이란 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다.

TreeMap

-TreeMap은 이름에서 알 수 있듯이 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다.

-HashMap과 TreeMap의 검색성능에 관한 것인데, 검색에 관한한 대부분의 경우에서 HashMap이 TreeMap보다 더 뛰어나므로 HashMap을 사용하는 것이 좋다. 다만 범위검색이나 정렬이 필요한 경우에는 TreeMap을 사용하자

Properties

-Properties는 HashMap의 구버전인 Hashtable을 상속받아 구현한 것으로, Hashtable은 키와 값을 (Object,Object)의 형태로 저장하는데 비해 Properties는 (String,String)의 형태로 저장하는 보다 단순화된 컬렉션 클래스이다.

-주로 어플리케이션의 환경설정과 관련된 속성을 저장하는데 사용되며 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공한다.

-간단한 입출력은 Properties를 활용하면 몇 줄의 코드로 쉽게 해결될 수 있다.

컬렉션 클래스 정리 & 요약

컬렉션 클래스간의 관계

컬렉션

특징

ArrayList

배열기반.

데이터의 추가와 삭제에 불리, 순차적인 추가삭제는 제일 빠름. 임의의 요소에 대한 접근성이 뛰어남

LinkedList

연결기반.

데이터의 추가와 삭제에 유리.

임의의 요소에 대한 접근성이 좋지 않다.

HashMap

배열과 연결이 결합된 형태.

추가,삭제,검색,접근성이 모두 뛰어남.

검색에는 최고성능을 보인다.

TreeMap

연결기반.

정렬과 검색(특히 범위 검색)에 적합.

검색성능은 HashMap보다 떨어짐.

Stack

Vector를 상속받아 구현

Queue

LinkedList가 Queue인터페이스를 구현

Properties

Hashtable을 상속받아 구현

HashSet

HashMap을 이용해서 구현

TreeSet

TreeMap을 이용해서 구현

LinkedHashMap

LinkedHashSet

HashMap과 HashSet에 저장순서유지기능을 추가

profile
모든 업무 지식 작성하자!

0개의 댓글