본문 바로가기
IT 정보/Java

[Java]컬렉션(Collection Framework)

by 동그리가조아 2022. 5. 16.
반응형

Collection Framework 종류

  • Collection
    • List  : 객체를 일렬로 늘어놓는 구조, 자동으로 인덱스 부여하고 인덱스로 추가,검색,삭제 기능을 가짐
      • LinkedList : 데이터를 효율적으로 추가,삭제,변경에 용이하다,
        데이터가 연속적이지 않지만 서로 연결되어 있다. (연결된 요소의 주소값)
      • Strack :
      • Vector : 
      • ArrayList(대표) : 컬렉션 프레임 워크에서 가장 많이 쓰임, (개선된) Vector, 
        배열은 보통 생성시 크기가 고정한다 but ArrayList는 초과된 객체가 들어오면 자동으로 용량을 늘림,
        객체를 제거하면 뒤에 있는 모든 인덱스가 앞으로 1씩 당겨진다. ( 빈번한 수정이 필요한곳에 부적절),
        인덱스에 접근이 빨라 검색 측면에서는 우수함.
    • Set : 중복을 허용하지 않고, 저장 순서도 유지하지 않는다.
      • HashSet(대표) : Set 인터페이스의 대표적 컬렉션, ( 집합이라고 이해하면 편함 )
      • SortedSet :
        • TreeSet :이진 탐색 트리 형태로 데이터 저장, 중복 저장을 허용하지 않고, 저장 순서도 유지하지 않음
          부모 노드가 두 개의 자식 노드와 연결되는 정렬과 검색에 특화된 자료구조 
  • Map : Key와 Value 를 가지는 Entry 객체를 저장하는 구조를 가지고 있다. map이란 두 데이터를 연결한다는 (매핑) 을 의미한다. ( 키는 중복될 수 없고, value는 중복 저장이 가능하다. but 동일한 키 입력시 새로운 value값으로 저장 )
    • Hashtable(대표) : hash 함수를 통해 키와 값이 저장되는 위치를 결정하기 때문에, 사용자는 그 위치를 알수 없고 삽입되는 순서와 위치또한 관계가 없다. 해싱(hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 가진다. (key 타입은 클래스 및 인터페이스 타입만 가능하다)
    • HashMap : 
    • SortedMap :
      • TreeMap

 

컬렉션 프레임 워크의 주요 인터페이스로는 ListSet, Map 이렇게 3가지가 있다.

ListSet은 추가, 삭제, 검색 하는 방법에 공통점이 많다. 그래서 공통된 메서드를 모아 컬렉션 인터페이스로 정의했다.
Map은 key,value를 하나의 쌍으로 묶어서 관리하기 때문에 따로 독립된 인터페이스로 분류한다. 

인터페이스 특징 구현 클래스
List 순서 유지, 저장, 중복가능 ArrayList, Vector, Stack, LinkedList
Set 순서 유지x, 저장x, 중복저장x HashSet, TreeSet
Map 키(key), 값(Value)를 쌍으로 저장,
순서 유지하지 않음, 
키는 중복저장 불가 
HashMap, HashTable, TreeMap, Properties 

 

반응형