본문 바로가기
백엔드/자바

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

by study_yeon 2023. 8. 22.

컬렉션 프레임워크가 어떤 역할을 하는지는 알았으나 각각의 인터페이스와 클래스가 어떤 것이 있는지, 
그 클래스는 어떤용도로 사용되는지에 익숙하지 않아 수업에 어려움이 있어 다시 정리한다.

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

- 다수의 데이터를 처리하는 방식을 구조화(표준화)하여 설계해 놓은 것
- 자바의 인터페이스를 사용하여 구현

※ 프로그래밍을 하며 데이터 처리에 관한 알고리즘을 구상할 때 매번 달라지는 데이터의 자료구조에 따라 조작 방식을 새로 정의하는 것은 쉽지 않다.
이러한 문제점을 컬렉션 프레임워크를 통해 해결할 수 있다.

컬렉션 프레임워크는 데이터 형식에 따른 처리 방식이 이미 클래스나 인터페이스의 형태로 정의가 되어있다

[부부개발단] 즐거운 자바


▶ 컬렉션 프레임워크 주요 인터페이스

- 데이터를 저장하는 자료 구조에 따라 인터페이스를 정의
- List와 Set 인터페이스는 모두 Collection 인터페이스(공통 부분)를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의

1. List 인터페이스(List<E>)
- 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함
- 구현클래스 : Vector, ArrayList, LinkedList, Stack, Queue


* 주요 메소드

boolean add(E e) -  전달된 요소를 추가함. 
(선택적 기능)
void add(int index, E e) - 특정 위치에 전달된 요소를 
추가함. (선택적 기능)
void clear() - 모든 요소를 제거함.
(선택적 기능)
boolean equals(Object o) - 해당 리스트와 전달된 
객체가 같은지를 확인함.
boolean contains(Object o) - 전달된 객체를 포함하고 
있는지를 확인함.
E set(int index, E e) - 특정 위치에 존재하는 요소를 전달받은 객체로 대체함. 
(선택적 기능)
E get(int index) - 특정 위치에 존재하는 
요소를 반환함.
int size() - 요소의 총 개수를 반환함.
boolean isEmpty() 해당 리스트가 비어있는지를 확인함. Object[] toArray() - 모든 요소를 Object 타입의 
배열로 반환함.
boolean remove(Object o) - 전달된 객체를 제거함. 
(선택적 기능)
Iterator iterator() - 반복자(iterator)를 반환함.
boolean remove(int index) - 특정 위치에 존재하는 요소를 제거함. (선택적 기능)    


2. Set 인터페이스(Set<E>)
- 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음
- 구현클래스 : HashSet, TreeSet
* 주요 메소드

boolean add(E e) - 전달된 요소를 추가함. (선택적 기능)
void clear() - 모든 요소를 제거함. (선택적 기능)
boolean contains(Object o) - 전달된 객체를 포함하고 있는지를 확인함.
boolean equals(Object o) - 전달된 객체가 같은지를 확인함.
boolean isEmpty() - 비어있는지를 확인함.
Iterator iterator() - 반복자(iterator)를 반환함.
boolean remove(Object o) - 전달된 객체를 제거함. (선택적 기능)
int size() - 요소의 총 개수를 반환함.
Object[] toArray() - 모든 요소를 Object 타입의 배열로 반환함.

 


3. Map 인터페이스(Map<K, V>)
- 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없음
- 이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있음 
- 구현클래스 : HashMap, TreeMap, Hashtable, Properties
* 주요 메소드
- 클래스 메소드 존재(다음 게시물에서 정리)


▶ Collection 인터페이스

- 컬렉션을 다루는데 가장 기본적인 동작들을 정의

▷ 주요 메소드
boolean add(E e)
- 전달된 요소를 추가함. (선택적 기능)


void clear()
- 모든 요소를 제거함. (선택적 기능)


boolean contains(Object o)
- 전달된 객체를 포함하고 있는지를 확인함.


boolean equals(Object o)
- 해당 컬렉션과 전달된 객체가 같은지를 확인함.


boolean isEmpty()
- 비어있는지를 확인함.


Iterator<E> iterator()
- 반복자(iterator)를 반환함.


boolean remove(Object o)
- 전달된 객체를 제거함. (선택적 기능)


int size()
- 요소의 총 개수를 반환함.


Object[] toArray()
- 모든 요소를 Object 타입의 배열로 반환함.

 

※ Iterator(반복자) 인터페이스
while, for 문과 함께 사용된다.
한 번 사용된 Iterator 객체는 재사용이 불가능하다

메서드
① hasNext()
- 다음 요소가 존재하는지 혹은 그렇지 않은지 true/false로 리턴한다. true 이면 다음 요소다 있다는 것이고, false 이면 현재 요소가 마지막이라는 뜻이다.
② next()
- 다음 요소를 가져온다.
③ remove()
- next()로 호출된 요소를 제거한다.

 

 


▶  컬렉션 클래스(collection class)

- 컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스
- List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현
- 클래스 이름에 구현한 인터페이스의 이름이 포함

 

각 인터페이스의 컬렉션 클래스는 다른 게시물에 작성 할 것.

 

 



참고 글 

https://www.tcpschool.com/java/java_collectionFramework_concept
https://tragramming.tistory.com/100

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

[Java] Iterator(반복자)

Java의 Iterator 인터페이스에 대해 공부해보았다. Iterator를 우리 말로 번역하면 '반복자'로, 객체 지향 프로그래밍에서 배열과 같은 여러 개의 데이터의 집합으로 이루어진 자료구조를 순회하는 객

tragramming.tistory.com

 

* 래퍼(Wrapper) 클래스도 정리할 것

 

'백엔드 > 자바' 카테고리의 다른 글

컬렉션 클래스 - Set  (0) 2023.08.24
컬렉션 클래스 - List  (0) 2023.08.24
자바 - 29 (Stream)  (0) 2023.06.12
자바 - 28 (재귀(Recursion) 알고리즘)  (0) 2023.06.08
자바 - 27 (게시판 만들기)  (0) 2023.06.08