본문 바로가기
카테고리 없음

[Java] 컬렉션 프레임워크 (Java Collections Framework)

by MPerformance 2020. 5. 5.

컬렉션

  •  요소(객체)를 수집해서 저장하는 것

프레임워크

  • 인터페이스와 클래스의 모음

컬렉션 프레임워크

  • 객체를 효율적으로 추가, 검색, 삭제할 수 있도록 제공되는 라이브러리 

배열

  • 배열의 크기를 최초 선언시 변경을 할 수 없고
  • 인덱스로 관리하지만 해당 인덱스를 삭제해도 비어있는 공간을 유지 한다.
  • 그렇기 때문에 비어있는 공간을 찾아 값을 삽입해야 한다.

List

  • 인덱스로 관리하며 저장순서를 유지하고, 중복값을 허용한다.
  • 인덱스를 삭제시 뒤에 객체들이 당겨지며,
  • 인덱스를 추가시 앞의 객체들이 밀려난다.
  • 종류로는 ArrayList, Vector, LinkedList, Stack, Queue가 있다

Set

  • 저장된 순서를 유지하지 않고, 중복값을 허용하지 않는다.
  • 하나의 null 객체를 생성할 수 있고
  • 인덱스로 관리하지 않기 때문에 Iterator(반복자)를 이용하여 데이터 저장 순서에 상관없이 하나씩 꺼내오면서 찾는다.
  • 동일 객체 및 동등 객체를 비교하기 위해 Hashcode()와 equals()메서드를 이용한다.
  • 종류로는 HashSet, TreeSet이 있다.

Map

  • Key와 Value로 이루어진 쌍으로 관리하며 key값은 중복을 허용하지 않고 value 값은 중복을 허용한다.
  • 종류로는 HashTable, HashMap, TreeMap, Properties가 있다.

이진트리 (TreeSet, TreeMap)

  • 이진트리를 기반으로 구성되어 있기 때문에 저장시 자동 정렬이 된다.
  • TreeSet에서 필요한 메서드가 Set Interface에는 없기 때문에 타입을 TreeSet으로 해줘야 사용할 수 있다.

댓글