프리 정보 컨텐츠

자바 컬렉션 프레임워크 개념파악 및 공부방법 본문

JAVA

자바 컬렉션 프레임워크 개념파악 및 공부방법

쏜스 2021. 1. 15. 02:19

자바 컬렉션 프레임워크를 처음 접할 때는 언제 어떻게 쓰는지에 대해서 중점을 두어야 한다.

처음부터 이론 중심의 이해가 아닌 여러 번 빠르게 전체적 반복 학습하자.

 

기초적인 개념에 대해서 먼저 알아보자.

 

컬렉션 - 여러 객체를 모아 놓은 것을 의미
프레임워크 - 표준화된 체계적인 프로그래밍 방식

컬렉션 프레임워크 정의?

데이터를 저장하는 자료 구조와 알고리즘을 구조화하여 클래스로 구현한 것

컬렉션 프레임워크를 사용하는 이유?

컬렉션 프레임워크는 표준화하고 체계적이기 때문에 프로그래밍을 작성하는 방식이 비슷해서 다른 사람의 코드를 유지보수하기 쉬워서 사용한다. 대표적으로 스프링 프레임워크를 예로 들 수 있다.

 

객체를 다루기 위해 배열을 자주 다루었는데, 배열을 사용할 때의 비효율적인 문제를 해결하기 위해서 컬렉션 프레임워크를 사용한다. 배열의 크기는 생성할 때 크기를 정하고, 크기가 넘어가면 데이터를 저장할 수 없는 문제점이 있다.

 

즉, 배열의 문제점을 해결하기 위해 자료구조를 바탕으로 객체나 데이터들을 (추가, 삭제, 검색, 저장) 할 수 있도록 만들어져 있다. 이러한 자료구조들을 컬렉션 프레임워크라고 말하며 대표적으로 List, Set, Map, Stack, Queue 등이 있다.

 

오늘은 가장 핵심적인 인터페이스인 List, Set, Map에 대해서 알아보자.

 

인터페이스

설명

클래스

List <E> 

순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다. 
예) 대기자 명단

Vector, ArrayList, LinkedList, Stack, Queue 등

 Set <E>

순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않는다. 
예) 양의 정수 집합, 소수의 집합

HashSet, TreeSet 등

Map <K, V> 

 키(Key)와 값(Value)의 한 쌍으로 이루어진 데이터의 집합으로 순서가 없다.
키는 중복을 허용하지 않지만 값은 중복될 수 있다.
예) 우편번호, 지역번호(전화번호)

HashMap, TreeMap, Hashtable, Properties

 

List와 Set 인터페이스는 Collection 인터페이스를 상속받지만, Map 인터페이스는 별도로 정의된다.

List <-> Set   List와 Set 인터페이스의 구조적 설명은 반대로 생각하자.

 

다루려는 데이터 특징에 맞춰서 필요한 인터페이스를 선택해서 사용한다.

 

ex) 순서를 유지해야 되고 중복이 있거나 없어도 된다. -> List 인터페이스의 클래스 중 한 개를 사용한다.

 

List와 Set의 공통된 부분은 Collection 인터페이스에서 정의한다.

Collection 인터페이스는 가장 기본적인 동작들을 정의하고, 메소드로서 제공하고 있다.

앞으로 기본적인 메소드는 자주 사용하니 반복학습을 통해 익혀두자.

 

메소드 설명
boolean add(E e) 해당 컬렉션(collection)에 전달된 요소를 추가 (선택적 기능)
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 타입의 배열로 반환함.

 

List, Set, Map에 대한 자세한 내용은 추후에 알아보도록 하자.

Comments