프로그래밍/JAVA

java 컬렉션 프레임워크(Collection Framework)

p-a-r-k 2020. 3. 10. 13:18
반응형

 

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