본문 바로가기
Java

JAVA Collection

by titlejjk 2023. 5. 8.

Java에서의 컬렉션(Collection)은 데이터를 유용하게 담기 위해 만들어 둔 인터페이스로 컬렉션 프레임워크라고도 부른다.

컬렉션은 데이터의 집합, 그룹을 의미하며, 라이브러리 방식으로 작동한다.

 

컬렉션 프레임워크는 다양한 인터페이스와 클래스를 제공한다. 이를 사용하여 데이터를 쉽게 조작할 수 있다. 컬렉션 프레임워크는 크게 List, Set, Map으로 구분된다.

 

  • List : 순서가 있는 데이터의 집합이다. 데이터의 중복을 허용하며, ArrayList, LinkedList, Vector 등이 있다.
  • Set : 순서가 없는 데이터의 집합이다. 데이터의 중복을 허용하지 않으며, HashSet, TreeSet 등이 있다.
  • Map : key와 value로 구성된 데이터의 집합.key는 중복이 불가하며, TreeMap, HashMap등이 있다.

컬렉션 프레임워크는 제네릭(generics)기법으로 구현되어 있으며, 제네릭을 사용하면 컬렉션 내부에서 다루는 객체의 타입을 컴파일 시점에 체크할 수 있다. 따라서 타입 안정성을 보장하면서 불필요한 타입 변환을 줄일 수 있다.

 

컬렉션 프레임워크를 사용하면 데이터를 쉽게 조작할 수 있지만, 각각의 인터페이스와 클래스는 특징이 다르다. 이러한 특징을 잘 이해하고 사용해야 한다.

 

  • ArrayList는 인덱스로 원소에 접근할 수 있고, 데이터 추가/삭제가 빠르다. 하지만 중간에 데이터를 추가/삭제할 경우 배열의 복사가 필요하므로 성능이 떨어질 수 있다.
  • LinkedList는 데이터 추가/삭제가 빠르지만, 인덱스로 원소에 접근하는 경우 모든 원소를 순회해야 하므로 성능이 떨어진다.
  • HashSet은 중복된 데이터를 허용하지 않으며, 데이터 조회가 빠르다. 하지만 데이터의 순서가 보장되지 않는다.
  • TreeSet은 정렬된 순서로 데이터를 저장한다. 따라서 데이터의 조회와 범위 검색이 빠르다. 하지만 HashSet에 비해 데이터 추가/삭제가 느리다.
  • HashMap은 key-value 쌍으로 데이터를 저장한다. key를 이용하여 데이터를 조회할 수 있으며, 데이터 추가/삭제가 빠르다. 하지만 데이터의 순서가 보장되지 않는다.
  • TreeMap은 정렬된 순서로 key-value쌍을 저장한다. key를 이용한 조회와 검색이 빠르지만 HashMap에 비해 데이터 추가/삭제가 느리다.

컬렉션프레임워크는 자바에서 데이터를 다룰 때 필수적인 도구이다. 여러 인터페이스와 클래스를 활용하여 데이터를 쉽게 조잘할 수 있다. 하지만 각각의 클래스와 인터페이스는 특징이 다르므로, 사용 목적에 따라 적절한 클래스를 선택해 사용해야 한다.

'Java' 카테고리의 다른 글

JAVA Exception  (0) 2023.05.10
JAVA List Set Map  (0) 2023.05.08
JAVA HashMap  (0) 2023.05.08
JAVA ArrayList  (0) 2023.05.04
JAVA Generic Class  (0) 2023.05.04

댓글