JAVA

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

PGNV 2022. 1. 19. 15:21

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

다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합

즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현

 

 

 

자료 구조 

  • 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미
  • 데이터 값의 모임, 데이터 간의 관계, 데이터에 적용할 수 있는 함수나 명령을 의미

 

 

 

 

리스트(List)

1. ArrayList

  • 데이터는 배열을 사용하여 관리
  • 새로운 배열을 만들고 복사하여 배열크기를 변경하는 메서드들이 존재, 데이터 추가/삭제가 간단하며 사용이 쉬움

장점 : 데이터 접근 속도가 빠름(단, 데이터의 인덱스 번호를 알고 있는 경우)

단점 : 비 순차 데이터의 추가/삭제 속도가 느림

 

2. LinkedList

  • 데이터는 Node 객체를 사용하여 관리
  • 각 노드는 다음 노드의 주소값과 데이터로 구성됨

장점 : 데이터의 추가/삭제 속도가 빠름

단점 : 데이터 접근 속도가 느림(첫 번째 노드부터 순차적으로 검색을 해야 원하는 데이터를 찾을 수 있음)

 

 

3. Vector

장점 : ArrayList와 동일한 구조 + 동기화된 메서드로 구성되어 멀티 스레드 환경에서 안전하게 객체를 추가/삭제 가능

단점 : 하나의 스레드에서 Vector 객체를 점유하는 동안 다른 스레드는 추가/삭제가 불가능하여 속도가 느림

 

 

 

 

 

 

 

 

Set

HashSet

  • 데이터 순서 없이 저장
  • 데이터 중복 불가

 

TreeSet

  • 데이터 오름차순 정렬하여 저장(이진 트리로 정렬된 상태로 요소 관리)
  • 데이터 중복 불가

 

 

Map

 

 

HashMap

  • 스레드를 고려하지 않아 Hashtable에 비해 추가/삭제 속도가 빠름

 

 

TreeMap

  • Key 데이터 기준 오름차순 정렬하여 저장 (이진 트리로 정렬된 상태로 요소 관리)

 

Hashtable

  • 동기화된 메서드로 구성되어 멀티 스레드 환경에서 안전하게 객체를 추가/삭제 가능

단점 : 하나의 스레드에서 Hashtable객체를 점유하는 동안 다른 스레드는 추가/삭제가 불가능하여 속도가 느림

 

 

 

 

 

'JAVA' 카테고리의 다른 글

자바(Java) - 스레드(Thread)  (0) 2022.01.20
자바(Java) I/O 개념  (0) 2022.01.20
자바 제네릭(Generics)  (0) 2022.01.19
자바 예외 처리  (0) 2022.01.19
인터페이스  (0) 2022.01.19