의견.png

자바 컬렉션

위키원
greenwood26 (토론 | 기여)님의 2020년 8월 28일 (금) 12:25 판
이동: 둘러보기, 검색

자바 컬렉션(Java Collection)이란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.[1]

특징[2]

자바 컬렉션 구조

장점

  • 별도로 컬렉션 클래스를 구현하는 것보다 이미 구현되어 있는것을 사용함으로써 코딩 시간을 감소 시킬 수 있다.
  • 컬렉션 프레임워크들은 잘 테스트되고 검증되어 있기 때문에 코드 품질을 보장한다.
  • JDK에 포함된 컬렌션 프레임워크들을 사용하여 코드 유지보수 시간을 감소시킬 수 있다.
  • 재사용 가능하고 상호 운용성이 보장된다.

구성요소

  • 컬렉션 인터페이스 : 모든 컬렉션 인터페이스는 java.util패키지에 있다.
  • 컬렉션 클래스 : 모든 컬렉션 클래스는 java.util 또는 java.util.concurrent 패키지에 있다.
  • 컬렉션 알고리즘 : 검색, 정렬, 셔플 같은 기능을 제공한다.

컬렉션(Collection) 인터페이스 그룹[2]

컬렉션 인터페이스들은 제네릭으로 표현되어 컴파일 시점에서 객체의 타입을 체크하기 때문에 런타임 에러를 줄이는 데 도움이 된다. 예를 들어 런타임 시 발생하는 ClassCastException을 컴파일 시점에서 찾아낼 수 있다. 또한 클래스 캐스팅을 하지 않아도 되므로 코드를 좀 더 깔끔하게 유지할 수 있다. 컬렉션 인터페이스는 직접적인 수현은 제공하지 않으며 모든 컬렉션 클래스가 구현해야 하는 메소드들을 포함하고 있다. 아래는 Collection 인터페이스에서 제공하는 주요 메소드이다.

컬렉션 인터페이스 메소드[1]
메소드 설명
boolean add(E e) 해당 컬렉션에 전달된 요소를 추가함
void clear() 해당 컬렉션의 모든 요소를 제거함 (선택적 기능)
boolean contains(Object o) 해당 컬렉션이 전달된 객체를 포함하고 있는지 확인함
boolean equals(Object o) 해당 컬렉션과 전달된 객체가 같은지 확인함
boolean isEmpty() 해당 컬렉션이 비었는지를 확인함
Iterator<E> iterator() 해당 컬렉션의 반복자(iterator)를 반환함
boolean remove(Object o) 해당 컬렉션에서 전달된 객체를 제거함 (선택적 기능)
int size() 해당 컬렉션의 요소의 총 개수를 반환함
Object[] toArray() 해당 컬렉션의 모든 요소를 Object타입의 배열로 반환함

리스트(list) 인터페이스

리스트(list) 인터페이스는 순서가 있는 컬렉션이며 중복 요소를 포함할 수 있다. 인덱스로 모든 요소에 접근할 수 있으며, List 인터페이스로 구현된 클래스는 ArrayList, LinkedList, Vector, Stack이 있다.

리스트 인터페이스 메소드[1]
메소드 설명
boolean add(E e) 해당 리스트에 전달된 요소를 추가함 (선택적 기능)
void add(int index, E e) 해당 리스트의 특정 위치에 전달된 요소를 추가함 (선택적 기능)
void clear() 해당 리스트의 모든 요소를 제거함 (선택적 기능)
boolean contains(Object o) 해당 리스트가 전달된 객체를 포함하고 있는지 확인함
boolean equals(Object o) 해당 리스트와 전달된 객체가 같은지 확인함
E get(int index) 해당 리스트의 특정 위치에 존재하는 요소를 반환함
boolean isEmpty() 해당 리스트가 비었는지를 확인함
Iterator<E> iterator() 해당 리스트의 반복자(iterator)를 반환함
boolean remove(Object o) 해당 리스트에서 전달된 객체를 제거함 (선택적 기능)
boolean remove(int index) 해당 리스트에서 특정 위치에 존재하는 요소를 제거함. (선택적 기능)
E set(int index, E e) 해당 리스트의 특정 위치에 존재하는 요소를 전달받은 객체로 대체함 (선택적 기능)
int size() 해당 리스트의 요소의 총 개수를 반환함
Object[] toArray() 해당 리스트의 모든 요소를 Object타입의 배열로 반환함

세트(set) 인터페이스

세트(Set) 인터페이스는 중복 요소를 포함할 수 없으며 랜덤 액세스를 허용하지 않으므로, iterator 또는 foreach를 이용하여 요소를 탐색할 수 있다. Set 인터페이스로 구현된 클래스는 HashSet, TreeSet, LinkedHashSet 이 있다.

세트 인터페이스 메소드[1]
메소드 설명
boolean add(E e) 해당 집합(set)에 전달된 요소를 추가함.(선택적 기능)
void clear() 해당 집합의 모든 요소를 제거함
boolean contains(Object o) 해당 집합이 전달된 객체를 포함하고 있는지를 확인함
boolean equals(Object o) 해당 집합과 전달된 객체가 같은지를 확인함
boolean isEmpty() 해당 집합이 비어있는지를 확인함
Iterator<E> iterator() 해당 집합의 반복자(iterator)를 반환함
boolean remove(Object o) 해당 집합에서 전달된 객체를 제거함(선택적 기능)
int size() 해당 집합의 요소의 총 새수를 반환함
Object[] toArray() 해당 집합의 모든 요소를 Object타입의 배열로 반환함

큐(queue) 인터페이스

각주

  1. 1.0 1.1 1.2 1.3 TCP SCHOOL, <컬렉션 프레임워크의 개념>, <<TCP SCHOOL>>
  2. 2.0 2.1 개발새발!, <자바 컬렉션 프레임워크(Java Collection Framework) 정리>, <<개인 블로그>>, 2018-06-28

참고자료

같이보기


  의견.png 이 자바 컬렉션 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.