개발 일지/Java

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

미숫가루설탕많이 2023. 1. 4. 15:22

 자바에서 컬렉션 프레임워크(collection framework)란, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 말한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현한 것이다.

 

 컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공해준다. 따라서, 컬렉션 프레임워크가 제공하는 다양한 인터페이스와 구현 클래스를 활용하면 보다 객체 지향적이고 재사용성 높은 코드를 작성할 수 있다.

 

 

 

 

컬렉션 프레임워크의 구조


 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현된다.

 

 다음은 핵심이 되는 주요 인터페이스이다.

 

List
  • List는 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는 데 사용된다.
  • ArratList, Vector, Stack, LinkedList 등이 List 인터페이스를 구현한다.

 

Set
  • Set은 데이터의 순서가 유지되지 않으며, 중복 저장이 불가능한 컬렉션을 구현하는 데 사용된다.
  • HashSet, TreeSet 등이 Set 인터페이스를 구현한다.

 

Map
  • Map은 키(key)와 값(value)의 쌍으로 데이터를 저장하는 컬렉션을 구현하는 데 사용된다.
  • 데이터의 순서가 유지되지 않으며, 키는 값을 식별하기 위해 사용되므로 중복 저장이 불가능하지만 값은 중복 저장이 가능하다.
  • HashMap, HashTable, TreeMap, Properties 등

 

 

 여기서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다. 따라서 List와 Set 인터페이스의 공통되는 부분은 Collection 인터페이스에서 정의하고 있다. 즉, 이 둘의 공통점이 추출되어 추상화된 것이 바로 Collection 이라는 인터페이스이다.

 

 Collection 인터페이스에는 다음과 같은 메서드들이 정의되어져 있다.

 

리턴 타입 메서드 설명
boolean add(Object o) /
addAll(Collection c)
주어진 객체 및 컬렉션의 객체들을 컬렉션에 추가
boolean contains(Object o) / containsAll(Collection c) 주어진 객체 및 컬렉션이 저장되어 있는지 여부 리턴
Iterator iterator() 컬렉션의 iterator 리턴
boolean equals(Object o) 컬렉션이 동일한지 여부 확인
boolean isEmpty() 컬렉션이 비어있는지 여부 확인
int size() 저장되어 있는 전체 객체 수 리턴
void clear() 컬렉션에 저장된 모든 객체 삭제
boolean remove(Object o) / removeAll(Collection c) 주어진 객체 및 컬렉션을 삭제하고 성공 여부 리턴
boolean retainAll(Collection c) 주어진 컬렉션을 제외한 모든 객체를 컬렉션에서 삭제하고, 컬렉션에 변화가 있는지의 여부 리턴
Object[] toArray() 컬렉션에 저장된 객체를 객체배열(Object [])로 반환
Object[] toArray(Object[] a) 주어진 배열에 컬렉션의 객체를 저장해서 반환

 

'개발 일지 > Java' 카테고리의 다른 글

[Java] Set<E>  (0) 2023.01.04
[Java] List<E>  (0) 2023.01.04
[Java] 예외 처리(Exception Handling)  (0) 2023.01.04
[Java] 에러(Error)  (0) 2023.01.04
[Java] 제네릭(Generic)  (0) 2023.01.04