🚀 컬렉션 프레임워크(Collection Framework)란?
자바에서 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있도록 표준화된 방법을 제공하는 클래스의 집합을 말한다.
즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현한 것이다.
이러한 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현된다.
⭐️ 주요 인터페이스
- List 인터페이스
- Set 인터페이스
- Map 인터페이스
인터페이스 설명 구현 클래스
List<E> | 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함. | Vector, ArrayList, LinkedList, Stack, Queue |
Set<E> | 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음. | HashSet, TreeSet |
Map<K, V> | 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없음. | |
이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있음. | HashMap, TreeMap, Hashtable, Properties |
Map 은 Collection을 상속받지 않는다?
이중, List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상 차이(Key-Value 구조)로 Map 인터페이스는 별도로 정의된다. 따라서, List 인터페이스와 Set 인터페이스의 공통된 부분을 Collection 인터페이스에서 정의하고 있다.
🎯 Collection 을 사용하는 이유
1. 일관된 API 제공
Collection의 일관된 API를 사용하여 Collection을 상속받는 모든 클래스에서 통일된 메서드를 사용할 수 있다.
2. 알고리즘 고민 감소
추상화를 통해 공통된 메서드를 제공하기 때문에 데이터 추가, 제거 등과 같은 기본적인 메서드를 구현할 필요가 없다. 따라서 애플리케이션 설계 및 개발에 집중할 수 있다.
3. 프로그램 속도 및 품질 향상
자주 사용되는 메서드를 최적화하여 미리 구현되어 있기 때문에 유용한 데이터 구조 및 알고리즘은 성능을 향상할 수 있다.
❓기존 배열과 다른점이 뭐야?
여기서 배열과 유사한 자료구조인 List의 차이점에 대해서 알고 가자.
배열
- 배열 선언 시 크기가 고정되어 있다.
- 연속적인 데이터라서 메모리 관리에 유용하다.
- 크기 확장(또는 삽입)이 불편한다. 크기 확장을 하고자 한다면 크기가 배열을 새롭게 선언하고 기존의 값을 복사해야 한다.
- 크기를 변경할 수 없기 때문에 중간에 데이터를 삭제하면 데이터 낭비가 발생한다.
List
- 크기를 유연하겨 변경할 수 있다.
- 데이터를 중간에 삽입, 삭제가 편리하다.
- 불연속 데이터로 포인터를 통해 접근한다.
- 빈틈없는 데이터 적재로 필요한 메모리만큼 차지한다.
🌐 Reference
[JAVA] 컬렉션(Collection)이란?(추가 : Collecion의 요소 상세설명)
'개발 스토리' 카테고리의 다른 글
JUnit에 대해 알아보고 사용해보기 👀 (1) | 2023.10.27 |
---|---|
[우테코 API] Assetions, NsTest 에 대해 알아보기 (1) | 2023.10.26 |
자바 스트림(Stream)이란 무엇이고 왜 쓰는건가? (0) | 2023.10.22 |
MVC 패턴에 대해, 그리고 이를 지키는 규칙 (2) | 2023.10.21 |
레코드(record) 누구냐 넌? (2) | 2023.10.20 |