본문 바로가기
개발/Java

Set, List, Map 정리

by Devsong26 2017. 11. 2.

- Set 인터페이스란?

중복을 허용하지 않는 자료구조입니다. 

 

- Set을 구현한 대표적인 클래스

HashSet, TreeSet, LinkedHashSet이 있습니다. 

TreeSet은 natural ordering이 적용이 되며, 생성자의 매개변수로 Comparator 객체를 입력하여 ordering을 임의로 설정할 수 있습니다.

HashSet과 LinkedHashSet은 natural ordering이 적용되지 않습니다.

 

* ordering이란? 

정렬을 의미합니다.

natural ordering의 경우, 입력 시 [1, 5, 3, 4, 2] 순서로 Set 객체에 데이터를 입력할 경우

[1, 2, 3, 4, 5]로 정렬이 되어 저장이 됩니다. 이것은 내부적으로 이루어집니다. 

또한, 문자열과 문자 타입의 경우에는 아스키코드 값에 근거하여 오름차순 정렬이 이루어집니다.

 

 

- List 인터페이스란? 

배열처럼 인덱스를 통해서 데이터 값을 조작할 수 있는 자료구조로써 중복을 허용합니다.

 

- List를 구현한 대표적인 클래스

Vector, ArrayList, LinkedList가 있습니다.

Vector는 ArrayList의 구형버전이며 잘 사용 안합니다.

ArrayList는 가변길이 배열이며 인덱스를 통해 데이터를 찾아오기 때문에 LinkedList보다 빠릅니다. 

LinkedList는 데이터의 입력과 삭제가 용이하지만 데이터 검색은 상대적으로 ArrayList보다 느립니다. 

 

 

- Map 인터페이스란?

(key, value)쌍으로 데이터를 저장하는 자료구조로써, key값은 중복 사용을 못합니다. 

각 각의 key값이 value값과 연결되어 있습니다. 

 

- Map을 구현한 대표적인 클래스

HashMap, Hashtable, TreeMap, LinkedHashMap이 있습니다.

HashMap은 동기화가 되지 않습니다. 입력되는 순서가 보장되지 않습니다.

Hashtable은 동기화가 가능하여 멀티스레드에서 이용 가능합니다. 

TreeMap은 key,value쌍인 Entry를 삽입시 정렬되어 저장됩니다. 

LinkedHashMap은 입력되는 순서에 따라 key, value쌍 Entry가 저장됩니다. 

 

List, Set은 Collection 인터페이스를 구현했지만, Map은 Collection 인터페이스를 구현하지 않습니다. 

 

 


더 많은 내용을 보시려면 아래를 참고하세요.


블로그의 다른 글

 

JAVA BigDecimal을 왜 그리고 어떻게 사용할까?

자바의 수 연산은 기본 자료형이나 BigDecimal 등의 클래스를 이용한다. 보통, Double(Wrapper class)와 BigDecimal 중 어떤 것을 사용해야 하는지로 고민하게 된다. 기본적인 수 연산은 +, -, *, /, % 연산자를..

developer-syubrofo.tistory.com

 

Set - TreeSet 사용하는 방법

- TreeSet이란? Set 인터페이스를 구현한 클래스로써 기본적으로 nature ordering를 지원하며 생성자의 매개변수로 Comparator객체를 입력하여 정렬 방법을 임의로 지정해 줄 수 있습니다. - 특징 Set 인터

developer-syubrofo.tistory.com

 

Map - HashMap 사용하는 방법

- HashMap이란? Map 인터페이스를 구현한 Hash table입니다. HashMap 객체에는 (key, value)쌍으로 데이터를 입력할 수 있습니다. * (key, value)쌍을 entry라고 부릅니다. - 특징 1. key, value값으로 null을 허..

developer-syubrofo.tistory.com

 

Map - TreeMap 사용하는 방법

- TreeMap이란? NavigableMap 인터페이스를 구현한 Red-Black tree입니다. key값에 의해 정렬이 되는데, 생성자에 Comparator객체를 입력하여 생성할 경우 Comparator의 compare메소드에 의해 정렬이 이루어집니다..

developer-syubrofo.tistory.com

 

Map - LinkedHashMap 사용하는 방법

- LinkedHashMap이란? Map 인터페이스를 구현한 클래스이며 동시에 Linked LIst이면서 Hash table입니다. - 특징 (1) 입력했던 순서대로 Entry가 LinkedHashMap에 mapping됩니다. (2) LinkedHashMap은 double-link..

developer-syubrofo.tistory.com