부자 되기 위한 블로그, 머니킹

자바의 기본 문법인 Collection은 언뜻 보면 스크립트형 언어에서 사용하는 json, 혹으니 dictionary 형태와 비슷하다. 하지만 자바에서는 이들의 자료형을 좀 더 세분화 시켜서 사용한다. 가장 위에 있는 Map을 상속받아 사용 목적에 따라 구현체 class로 나누는데 이번 포스팅에서는 간략히 Collection이 무엇이 있는지에 대해서 알아보겠다.

 

Map

public interface Map<K, V> {

Map은 일반 클래스가 아닌 인터페이스이다. 즉 대부분의 Collection 자료형은 Map을 상속받으며 이들을 담는 그릇 형태로 사용한다.

 

실제 자바 Map에 들어가면 구현체에 대한 설명을 주석으로 잘 작성해두었다. 가서 확인해보자

 

HashMap

Map<String,Object> hashtableMap= new HashMap<>();
hashtableMap.put("one", 1);
hashtableMap.put("two", 2);

HashMap은 자료를 관리하는 방식이 해시 방식이다. key 값의 중복이 불가하며, value 값 중복이 가능하고 key/value null 값을 허용한다.

 

Hashtable

Map<String,Object> hashtableMap= new HashMap<>();
hashtableMap.put("one", 1);
hashtableMap.put("two", 2);

HashMap은 자료를 관리하는 방식이 해시 방식이다 (key 값 중복 불가, value 값 중복 가능, key/value null 값 허용)

 

TreeMap

TreeMap<Integer, String> treeMap = new TreeMap<>();
treeMap.put(1, "member1");
treeMap.put(2, "member2");

TreeMap은 key 값에 대한 정렬이 이루어진다. key 값들에 대한 정렬 순서를 바꿀 수 있음

 

 

LinkedHashMap

Map<String, Object> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("two", 2);
linkedHashMap.put("one", 1);

for (String s : linkedHashMap.keySet()) {
    System.out.println("s = " + s);
}

LinkedHashMap은 Linked List 형태로 저장된다. 이는 순서대로 출력된다는 뜻이다