▸JAVA/기본 문법

컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4]

코데방 2019. 12. 10.
728x90

[ 컬렉션 프레임워크 ]

  • 여러 가지 자료구조 알고리즘을 미리 구현하여 데이터를 효율적으로 처리할 수 있도록 함
  • C언어의 연결리스트와 같은 개념 등을 하나의 클래스로 구현하여 쉽게 사용 가능

 

컬레션 프레임워크는 List, Set, Map 계열로 나뉘어집니다.

 

 

 


 

[ List 계열 ]

  • 배열 또는 연결리스트 자료구조와 동일한 구조 (순서를 가지는 자료 구조)
  • 기존 배열과 연결리스트를 편하게 사용할 수 있도록 클래스가 구성되어 있음
  • ArrayList : 일반 배열을 다루는 클래스, 동기화 처리가 불가능
  • Vector : ArrayList와 동일하나 동기화 처리가 가능하기 때문에 속도는 상대적으로 느림
  • LinkedList : 연결리스트 자료구조 구현

따라서 데이터 검색과 기존 데이터 변경이 잦은 구조일 때는 ArrayList / Vector Class를, 데이터의 삽입, 삭제가 잦은 구조일 때는 연결리스트 사용이 효율적입니다. 아시다시피 연결리스트가 아닌 일반 배열의 경우 중간에 데이터 삽입을 하거나 전체 사이즈를 늘릴 때는 일부 또는 전체의 데이터 이동이 발생합니다. 다만 일반 배열은 인덱스 순서대로 데이터가 나열되어 있기 때문에 검색 속도가 빠릅니다. 연결리스트는 데이터 삽입에 드는 연산횟수가 상대적으로 적은 반면 첫 값부터 타고 들어가며 검색해나가는 구조이기 때문에 데이터 검색에서 상대적으로 느릴 수밖에 없습니다.

 

상세 개념 및 List계열 클래스의 메소드는 아래 링크를 참조하시면 됩니다.

2019/12/09 - [C언어/알고리즘 및 자료구조] - 연결리스트_일반 배열 vs 연결리스트 [3/3]

2019/12/10 - [JAVA/라이브러리(API)] - java.util.ArrayList 클래스의 주요 메소드 [1/1]

2019/12/10 - [JAVA/라이브러리(API)] - java.util.Vector 클래스의 주요 메소드 [1/1]

2019/12/10 - [JAVA/라이브러리(API)] - java.util.LinkedList 클래스의 주요 메소드 [1/1]

 


 

[ Map 계열 ]

  • 데이터를 키(key)와 값(value)로 구분하여 구성 (순서를 가지지 않는 자료 구조)
  • 인덱스 대신 키값을 효율적인 방식으로 검색하여 검색 속도를 높임
  • 키는 인덱스의 기능이기 때문에 중복될 수 없음 (값은 중복 가능)
  • 데이터 입력 시 동일한 키를 사용하면 값을 덮어씀
  • hashMap : 키값을 해싱(hashing)해서 검색 속도를 높임
  • hashTable : hashMap의 구버전, 동기화 처리가 가능 (hashMap은 동기화 처리 불가능)
  • TreeMap : 자료를 트리 구조로 정렬하면서 저장해서 검색 속도를 높임

상세 개념 및 Map계열 클래스의 메소드는 아래 링크를 참조하시면 됩니다.

2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4]

2019/12/11 - [JAVA/라이브러리(API)] - java.util.HashMap 클래스의 주요 메소드 [1/1]

2019/12/11 - [JAVA/라이브러리(API)] - java.util.TreeMap 클래스의 주요 메소드 [1/1]

 


 

[ Set 계열 ]

  • 데이터를 중복으로 저장하지 않음 (중복된 데이터가 없는 집합)
  • 값을 해싱해서 저장하거나 이진 트리 구조를 이용해서 데이터 처리 속도를 높임
  • 컬렉션 프레임워크 중 가장 빠른 검색 속도를 가짐
  • HashSet : 값을 해싱 기법으로 저장, 탐색하여 중복을 피하고 속도를 높임
  • TreeSet : TreeMap과 같이 이진 트리를 이용해 정렬하면서 저장하여 속도를 높임

상세 개념 및 Tree계열 클래스의 메소드는 아래 링크를 참조하시면 됩니다.

2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4]

2019/12/11 - [JAVA/라이브러리(API)] - java.util.HashSet 클래스의 주요 메소드 [1/1]

2019/12/11 - [JAVA/라이브러리(API)] - java.util.TreeSet 클래스의 주요 메소드 [1/1]

728x90

댓글

💲 추천 글