자바의 기본 문법인 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 형태로 저장된다. 이는 순서대로 출력된다는 뜻이다