Collection 객체는 여러 원소들을 담을 수 있는 자료구조이다.
배열이 가장 기본적인 자료구조이며, DTO 또한 자료를 담는 하나의 방식.
콜렉션 프레임워크 : 자료구조를 기반으로 데이터를 읽기, 추가, 삭제, 검색 등 사용자가 효율적으로 객체를 사용하기 위하여 작성되어있는 인터페이스와 클래스들이며, java.util패키지에 포함됨.
자바에서의 자료구조 유형은 다음과 같다.
-
순서가 있는 목록인 List형
-
순서가 중요하지 않은 목록인 Set형
-
먼저 들어온 것이 먼저 나가는 Queue형
-
KEY-VALUE의 형태로 저장되는 Map형
배열과의 차이점은 정적 메모리 할당이 아닌 동적 메모리 할당
즉, new int[4]을 하면 4개 공간밖에 못쓰고 미리 선언을 통해 4개의 공간을 만들어야 하지만, collection은 공간이 계속 필요한 만큼 추가될 수 있다.
List 계열 : AbstractList, ArrayList, LinkedList, Vector
Map 계열 : AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap,
RenderingHints, TreeMap, WeakHashMap
Set계열 : AbstractSet, HashSet, LinkedHashSet, TreeSet
List 인터페이스
List 인터페이스는 Collection의 다른 인터페이스들과 가장 큰 차이는 배열처럼 순서가 있다는 것이다.
동일한 데이터의 중복 입력이 가능. ArrayList는 Thread safe하지 않고, Vector는 Thread safe하다.
Map 인터페이스
Map은 키(Key)와 값(value)으로 이루어져 있다. 동일한 데이터를 Key값으로 사용할 수 없다.
-
HashMap
-
데이터 입출력이 동기화되지 않고 처리속도가 빠르다.
-
대부분 HashMap 객체를 생성할 때에는 매개 변수가 없는 생성자를 사용한다. 하지만 HashMap에 담을 데이터의 개수가 많은 경우에는 초기 크기를 지정해주는 것을 권장한다.
-
-
HashTable
-
모든 입출력이 동기화(토근을 부여받아 순차적으로 객체에 접근)되며 처리속도는 다소 떨어진다.
-
-
TreeMap
-
키와 값을 저장하는 동시에 키를 정렬한다. 정렬되는 순서는 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글 순이다. 따라서, 정렬을 해야 할 필요가 있다면 HashMap 보다는 TreeMap을 사용하는 것이 더 유리하다.
-
Set 인터페이스
중복데이터를 불허하는 것을 제외하고는 큰 특징이 없음.
ArrayList 와 HashTable(HashMap)
ArrayList는 데이터를 검색하기 위해서는 처음부터 끝까지 돌거나 사용자가 index를 알아야함
index정보를 알고 있다면 ArrayList가 HashMap보다 빠름
HashTable은 key 값을 Object로 갖고 있기에 자바에서 사용가능한 모든 클래스 가능
키 값을 이용해 바로 원하는 정보를 얻어낼 수 있기에 검색능력이 탁월하다.
ArrayList의 경우 단순히 데이터를 입력하고 데이터를 출력하는 용도로
HashMap의 경우 데이터를 캐쉬해서 특정 key값으로 HashMap에 있는 데이터를 검색해서 사용하는 용도
'프로그래밍 > JAVA' 카테고리의 다른 글
java Collection - Queue 정리 (0) | 2020.03.10 |
---|---|
java Collection - Set 정리 (0) | 2020.03.10 |
java Collection - List 정리 (0) | 2020.03.10 |
java 연산자 ==, equals(), hashCode() 정리 (0) | 2020.03.10 |
java 기초 문법 정리 (0) | 2018.05.10 |