컬렉션 프레임웍 (Collections Framework)

컬렉션 프레임웍 : 데이터의 집합을 저장하는 클래스들을 표준화한 설계
컬렉션 : 다수의 데이터, 데이터그룹을, 프레임웍은 표준화된 프로그래밍 방식

컬렉션 프레임웍의 핵심 인터페이스


List : 순서O, 중복O

- ex) 대기자 명단

  • Vector : 이 Vector를 개선한 ArrayList가 있습니다 이건 더 이상 사용을 권장하지 않는다고 하네요
    • 장점: 동기화 기능이 적용되므로 멀테쓰레드 환경에서 사용하면 좋다
    • 단점: (생략)
  • Stack : 후입선출(LIFO)의 구조
    • 장점: 구현이 쉽다, 데이터의 빠른 저장, 접근
    • 단점: 저장 공간의 낭비가 발생할 수 있어서 미리 최대 개수를 지정해야 함 (단점 맞아?)
  • ArrayList : 가장 많이 쓰는 컬렉션, 배열이라고 생각하면 편합니다 
    • 장점: 빠른 요소 접근
    • 단점: 요소의 추가, 삭제가 느림, 배열크기 변경이 힘듦
  • LinkedList : 저장된 요소가 비순차적으로 분포되며, 요소들 사이를 링크로 연결하여 구성됨
    • 장점: 삽입과 삭제 용이, 기억장소의 재사용O, 연속적인 할당X
    • 단점: 자료의 접근이 느림, 복잡한 알고리즘, 배열크기 변경이 힘듦

Set : 순서X, 중복X

- ex) 양의 정수집합, 소수의 집합

  • HashSet : 해시 알고리즘을 사용
    • 장점: 빠른 검색 속도
    • 단점: 최대크기를 지정해주지 않으면 메모리 낭비가 심하다.
  • TreeSet : 이진 검색 트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션이다
    • 장점: 검색과 정렬에 유리하다
    • 단점: 노드의 추가 삭제에 시간이 걸린다.

 

Map : 순서O, 중복(키X, 값O)

- ex) 우편번호, 지역번호(전화번호)

  • HashMap : Map 인터페이스를 구현한 대표적인 컬렉션
    • 장점: 많은 양의 데이터를 검색하는데 있어서 뛰어남
    • 단점: 특이사항 없음
  • TreeMap : 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다.
    • 장점: Map의 장점인 빠른 검색과 Tree의 장점인 정렬과 범위검색의 장점을 모두 갖고 있다.
    • 단점: 이진검색트리처럼, 데이터를 저장할 때 정렬하기 때문에 저장시간이 길다는 단점이 있다.
  • Hashtable : 이 Hashtable를 개선한 HashMap가 있습니다 이건 더 이상 사용을 권장하지 않는다고 하네요
    • 설명 : 컬렉션 프레임워크가 있기 전부터 존재했기 때문에 호환성에 문제로 남아있다
  • Properties : 키와 값을 모두 String형태로 저장하는 보다 단순화된 컬렉션 클래스이다.
    • 장점: 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공
    • 단점: 필요할 때 사용하는 거라 딱히 없다

 

 

+ Recent posts