프로그램 개발을 건물 짓는 일에 비유해보자
원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도
사용하는 자료를 어떤 구조로 관리할 것인지가 중요하다.
이 때 사용하는 것이 자료구조 이다.
자료 구조는 프로그램 실행 중 메모리에 자료를 유지, 관리 하기 위해 사용되는데
자바에서는 필요한 자료구조를 미리 구현하여 java.util
패키지에서 제공하고 있다
이를 프레임워크 라고 한다
즉 , java.util
패키지 안에는 미리 만들어 놓은 인터페이스, 클래스들이 들어있고 자바에서 우리가 이 틀을 가져다가 사용할 수있도록 제공하고 이를 컬렉션 프레임워크라고 한다.
컬렉션 프레임워크란 java.util
패키지 안에서 값을 담을 수 있는 컨테이너인데,
값의 성격에 따라서 컨테이너의 성격도 조금씩 달라진다.
자바에서는 다양한 컨테이너(즉, 미리 만들어놓은 것)를 제공하는데 몇가지 예시를 아래에서 확인해보자
Collection
인터페이스Collection
인터페이스에 선언된 메서드 중 자주 사용하는 것들메서드 | 설명 |
---|---|
boolean add(E e) | Collection 에 객체를 추가한다. |
void clear() | Collection 의 모든 객체를 제거한다. |
Iterator iterator | Collection 을 순환할 반복자(Iterator)를 반환한다. |
boolean remove(Object obj) | Collection 에 매개변수에 해당하는 인스턴스가 존재하면 제거한다. |
int size() | Collection 에 있는 요소의 개수를 반환한다. |
Set
인터페이스의 특징수학시간에 배운 집합과 개념이 비슷하다
집합은 순서와 상관없이 중복을 허용하지 않는다. 따라서 중복되지 않는 객체를 다루는데 사용한다.
분류 | 설명 |
---|---|
Set 인터페이스 | - 순서가 정해져 있지 않다. |
- 중복을 허용하지 않는다. |
List
인터페이스의 특징List
를 구현한 클래스는 순차적인 자료를 관리하는데 사용하는 클래스이다.
분류 | 설명 |
---|---|
List 인터페이스 | - 순서가 있는 자료를 관리한다. |
- 중복을 허용한다. |
Map
인터페이스Map
인터페이스는 하나가 아닌 쌍으로 되어있는 자료를 관리하는 메서드들이 선언되어 있다.key - value
형태로 저장이 되는데 키값은 중복이 될 수 없다.Map
인터페이스에 선언된 메서드 중 자주 사용하는 것들메서드 | 설명 |
---|---|
V put(K key, V value) | key에 해당하는 value 값을 map에 넣는다. |
V get(K key) | key에 해당하는 value 값을 반환한다. |
boolean isEmpty() | Map이 비었는지 여부를 반환한다. |
boolean containsKey(Object key) | Map에 해당 key가 있는지 여부를 반환한다. |
boolean containsValue(Object value) | Map에 해당 value가 있는지 여부를 반환한다. |
Set keyset() | key 집합을 Set로 반환한다.(중복이 안되므로 Set) |
Collection values() | value를 Collection으로 반환한다.(중복 무관) |
V remove(key) | key가 있는 경우 삭제한다. |
boolean remove(Object key, Object value) | key가 있는 경우 key에 해당하는 value가 매개변수와 일치할 때 삭제한다. |