Language/Java

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

pongic 2022. 9. 24. 20:51
반응형

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

자바에서는 다수의 데이터를 저장하기 위해 널리 알려져 있는 자료 구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 컬렉션을 만들고, 관련된 인터페이스와 클래스를 포함시켜 두었다.

즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.

 

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

 

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

 

 

컬렉션 프레임워크 구조

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

 

List

List는 데이터의 순서가 유지되며, 중복 저장이 가능하다.

Ex. ArrayList, Vector, Stack, LinkedList 등

 

Set

Set은 데이터의 순서가 유지되지 않으며, 중복 저장이 불가능하다.

Ex. HashSet, TreeSet 등

 

Map

Map은 키와 값의 쌍으로 데이터를 저장한다. 데이터의 순서가 유지되지 않는다.

키는 식별하기 위해 사용되므로 중복 저장이 불가능하지만, 값은 중복 저장이 가능하다.

Ex. HashMap, LinkedHashMap, HashTable, TreeMap, Properties 등

 

ListSet은 서로 공통점이 많아 위 그림과 같이 Collection 인터페이스로 묶인다.

 

Collection 인터페이스

collection 인터페이스에는 아래와 같은 메서드들이 정의되어있다.

add(Object o) / addAll(Collection c)

주어진 객체 및 컬렉션의 객체들을 컬렉션에 추가한다. boolean 타입을 리턴한다.

 

contains(Object o) / containsAll(Collection c)

주어진 객체 및 컬렉션이 저장되어 있는지 여부를 리턴한다. boolean 타입을 리턴한다.

 

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)

주어진 배열에 컬렉션의 객체를 저장해서 반환합니다.

반응형

'Language > Java' 카테고리의 다른 글

[Java / 자료구조] 큐 (Queue) 정리  (0) 2022.09.25
[Java / 자료구조] 스택 (Stack) 정리  (0) 2022.09.25
[Java] next()와 nextLine()의 차이  (0) 2022.09.25
[Java] Set 정리  (0) 2022.09.25
[Java] 리스트 (List) 정리  (2) 2022.09.24