컬렉션 프레임워크

Sunny·2023년 1월 10일
0

🌱 컬렉션 프레임워크의 정의와 필요한 이유

배열의 문제점

애플리케이션을 개발하다 보면 다수의 객체를 저장해 두고 필요할 때마다 꺼내서 사용하는 경우가 많다. 만약 10개의 Product 객체를 저장해 두고, 필요할 때마다 하나씩 꺼내서 이용한다고 가정하자. 어떻게 Product 객체를 효율적으로 추가, 검색, 삭제할지 고민해야 되는데, 가장 간단한 방법은 배열이다.

배열은 쉽게 생성할 수 있다는 장점이 있지만, 다음과 같은 단점이 있다.
1. 저장할 수 있는 객체 수가 배열을 생성할 때 결정되기 때문에 불특정 다수의 객체를 저장하기에는 문제가 있다.
2. 객체를 삭제했을 때 해당 인덱스가 비게 되어 낱알이 듬성듬성 빠진 옥수수가 될 수 있다.


💡컬렉션 프레임워크의 필요성

자바는 배열이 가지고 있는 문제점을 해결하고, 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함시켜 놓았다. 이들을 총칭해서 컬렉션 프레임워크(Collection Framework)라고 부른다.

자바 컬렉션객체를 수집해서 저장하는 역할을 한다. 프레임워크사용 방법을 미리 정해 놓은 라이브러리를 말한다.


💡컬렉션 프레임워크의 주요 인터페이스 : List, Set, Map

자바 컬렉션 프레임워크는 List, Set, Map 인터페이스를 통해서 다양한 컬렉션 클래스를 이용할 수 있도록 하고 있다.

ArrayList, Vector, LinkedList : List 인터페이스를 구현한 클래스. List 인터페이스로 사용 가능한 컬렉션

HashSet, TreeSet: Set 인터페이스를 구현한 클래스로 Set 인터페이스로 사용 가능한 컬렉션

HashMap, HashTable, TreeMap, Properties: Map 인터페이스를 구현한 클래스로 Map 인터페이스로 사용가능한 컬렉션

List와 Set은 객체를 추가, 삭제, 검색하는 방법에 많은 공통점이 있기 때문에 이 인터페이스들의 공통된 메소드들만 모아 Collection 인터페이스로 정의해 두고 있다. Map은 키와 값을 하나의 쌍으로 묶어서 관리하는 구조로 되어있어, List 및 Set과는 사용 방법이 완전히 다르다.

다음은 각 인터페이스 별로 사용할 수 있는 컬렉션의 특징을 정리한 것이다.

profile
개발에 재미를 붙여보기 :)

0개의 댓글