Java에서 Collection
은 단어 뜻 그대로 데이터의 집합이나 그룹을 의미한다.
JCF, Java Collections Framework
에서는 Collection과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.
Collection의 핵심 인터페이스는 List
, Set
, Map
이다. List
와 Set
은 공통되는 부분이 있어 하나로 모아 새로운 인터페이스인 Collection
을 추가로 정의할 수 있었지만, Map
인터페이스는 전혀 다른 형태로 컬랙션을 다루기 때문에 같은 상속계층도에 포함되지 못하고 독립적인 인터페이스로 구현되어 있다.
Collections
란 Collection 인터페이스와 달리 컬렉션 프레임웍에 속하는 클래스를 지원해 주는 다양한 메소드가 존재하는 static 클래스이다.
다시 말해, Collection
은 인터페이스이고 그 인터페이스를 상속하는 클래스들을 모아놓은 것이 Collections
라고 생각하면 이해가 쉬울 것이다. Collections
의 모든 컬렉션 클래스들은 List
, Set
, Map
중의 하나를 구현하고 있으며, 구현한 인터페이스의 이름이 클래스의 이름에 포함되어 있어서 이름만으로도 클래스의 특징을 쉽게 알 수 있다.
List 인터페이스는 중복을 허용하면서 저장 순서가 유지되는 컬렉션을 구현하는데 사용된다.
Set 인터페이스는 중복을 허용하지 않고 저장 순서가 유지되지 않는 컬렉션을 구현하는데 사용된다.
Map 인터페이스는 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션을 구현하는데 사용된다. 이때 키는 중복될 수 없지만 값은 중복을 허용하며 순서가 없다.
참고
https://gangnam-americano.tistory.com/41
https://tenlie10.tistory.com/10
https://bangu4.tistory.com/194
(도서) Java의 정석