언어(Language)/Java

[Java] 자바 컬렉션 프레임워크 개념 정리 (Collection Framework)

잇트루 2022. 9. 21. 00:00
반응형

컬렉션 프레임워크란? (Collection Framework)

자바에서는 데이터를 저장하기 위해 다양한 자료 구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 컬렉션을 만들고, 관련된 인터페이스와 클래스를 포함하여 제공한다. 이를 컬렉션 프레임워크라고 한다.

컬렉션 프레임워크가 제공하는 다양한 인터페이스와 구현 클래스를 활용하면, 보다 객체 지향적이고 재사용성 높은 코드를 작성할 수 있다.

 

컬렉션은 여러 데이터들의 집합을 의미한다. 즉, 여러 데이터들을 그룹으로 묶어놓은 것을 컬렉션이라 하며, 컬렉션을 다루는 데 있어 편리한 메서드들을 미리 정의해 놓은 것을 컬렉션 프레임워크라 한다.

컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가, 삭제, 수정, 검색 등의 동작을 수행할 수 있는 다양한 메서드를 제공한다.

 

컬렉션 프레임워크의 구조

컬렉션 프레임워크는 주요 인터페이스로 List, Set, Map을 제공한다.

List

List는 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는 데 사용된다.

ArrayList, Vector, Stack, LinkedList 등이 List 인터페이스를 구현한다.

 

Set

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

HashSet, TreeSet 등이 Set 인터페이스를 구현한다.

 

Map

Map은 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 컬렉션을 구현하는 데 사용한다.

데이터의 순서가 유지되지 않으며, 키는 값을 식별하기 위해 사용되어 중복 저장이 불가능하다.

값은 키의 데이터를 나타내며 중복 저장이 가능하다.

 

List와 Set은 서로 공통점이 많아 Collection 인터페이스로 묶인다. List와 Set의 공통점이 추출되어 추상화된 것이 바로 Collection 인터페이스이다.

 

Collection 인터페이스

Collection 인터페이스는 다양한 메서드들이 정의되어 있다.

add(Object o) / addAll(Collection c)

입력받은 객체 및 컬렉션의 객체들을 컬렉션에 추가한다. 리턴 타입은 boolean이다.

 

contains(Object o) / containsAll(Collection c)

입력받은 객체 또는 컬렉션의 객체들이 저장되어 있는지 여부를 반환한다. 리턴 타입은 boolean이다.

 

iterator()

컬렉션의 iterator를 반환하는 메서드로 반환 타입은 Iterator이다.

 

equals(Object o)

컬렉션이 동일한 지의 여부를 확인하는 메서드로 boolean 타입으로 반환한다.

 

isEmpty()

컬렉션이 비어있는지 여부를 확인하는 메서드로 boolean 타입으로 반환한다.

 

size()

저장되어 있는 객체의 수를 int형으로 반환한다.

 

clear()

컬렉션에 저장된 모든 객체를 삭제하는 메서드로 반환 값이 없다.

 

remove(Object o) / removeAll(Collection c)

주어진 객체 및 컬렉션을 삭제하고 성공 여부를 boolean 타입으로 반환한다.

 

retainAll(Collection c)

주어진 컬렉션을 제외한 모든 객체를 컬렉션에서 삭제하고, 컬렉션의 변화가 있는지의 여부를 boolean 타입으로 리턴한다.

 

toArray()

컬렉션에 저장된 객체를 객체 배열(Object [])로 반환한다.

 

toArray(Object[] a)

주어진 배열에 컬렉션의 객체를 저장한 후 반환한다.

반응형