코린이의 소소한 공부노트

컬렉션 프레임워크 본문

Java

컬렉션 프레임워크

무지맘 2022. 10. 26. 22:12

[용어 정리]

1. 컬렉션

- 여러 객체(데이터)를 모아 놓은 것

 

2. 프레임워크

- 표준화, 정형화된 체계적인 프로그래밍 방식

- 라이브러리, 자바API 등이 제공하는 기능 + 정해진 프로그래밍 방식

- 정해져 있기 때문에 유연성은 떨어지나, 정해진 대로만 하면 되기 때문에 생산성이 올라간다.

- 표준화가 되어있기 때문에 누가 봐도 이해할 수 있다.

 

3. 컬렉션 프레임워크

- 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식

- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공

- 객체를 다룬다는 것은 데이터를 저장, 검색, 삭제, 정렬 등을 할 수 있다는 것이다.

- java.util 패키지에 있다.

 

4. 컬렉션 클래스

- 다수의 데이터를 저장할 수 있는 클래스

- ) Vector, ArrayList, HashSet

 

[컬렉션 프레임워크의 핵심 인터페이스]

1. List

- 순서가 있는 데이터의 집합

- 데이터의 중복 허용

- 구현 클래스: ArrayList, LinkedList, Stack, Vector

2. Set

- 순서가 상관없는 데이터의 집합

- 데이터의 중복 허용X

- 구현 클래스: HashSet, TreeSet

3. Map

- (key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합

- 순서는 상관없음

- 키는 중복 허용X

- 값은 중복 허용

- 구현 클래스: HashMap, TreeMap, Hashtable, Properties

 

[Collection 인터페이스]

1. ListSet의 공통부분을 모아서 만든 인터페이스

2. 메서드

boolean add(Object o)
boolean addAll(Collection c)
// 지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 추가한다.

void clear()
// Collection의 모든 객체를 삭제한다.

boolean contains(Object o)
boolean containsAll(Collection c)
// 지정된 객체(o) 또는 Collection(c)의 객체들이 Collection에 포함되어 있는지 확인한다.

boolean equals(Object o)
// 동일한 Collection인지 비교한다.

int hashCode()
// Collection의 hash code를 반환한다.

boolean inEmpty()
// Collection이 비어있는지 확인한다.

Iterator iterator()
// Collection의 Iterator를 얻어서 반환한다.

boolean remove(Object o)
boolean removeAll(Collection c)
// 지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에서 삭제한다.

boolean retainAll(Collection c)
// 지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제한다.
// 이 작업으로 인해 Collection에 변화가 있으면 true, 그렇지 않으면 false를 반환한다.

int size()
// Collection에 저장된 객체의 수를 반환한다.

Object[] toArray()
// Collection에 저장된 객체를 객체배열로 반환한다.

Object[] toArray(Object[] a)
// 지정된 배열(a)에 Collection의 객체를 저장해서 반환한다.

 

[List 인터페이스]

1. 저장 순서 유지(순서가 있음)

2. 데이터 중복 가능

3. 메서드(Collection의 메서드는 제외)

void add(int index, Object element)
boolean addAll(int index, Collection c)
// 지정된 위치(index)에 객체(element) 또는 컬렉션(c)에 포함된 객체들을 추가한다.

Object get(int index)
// 지정된 위치에 있는 객체를 반환한다.

int indexOf(Object o)
// 지정된 객체(o)의 위치를 반환한다.(List의 첫번째 요소부터 순방향으로 탐색한다.)

int lastIndexOf(Object o)
// 지정된 객체(o)의 위치를 반환한다.(List의 마지막 요소부터 역방향으로 탐색한다.)

ListIterator listIterator()
ListIterator listIterator(int index)
// List의 객체에 접근할 수 있는 ListIterator를 반환한다.

Object remove(int index)
// 지정된 위치에 있는 객체를 삭제하고 삭제된 객체를 반환한다.

Object set(int index, Object element)
// 지정된 위치에 객체를 저장한다.

void sort(Comparator c)
// 지정된 비교자(c)로 List를 정렬한다.

List subList(int fromIndex, int toIndex)
// 지정된 범위에 있는 객체를 반환한다.
// 마지막 인덱스는 미포함

 

[Set 인터페이스]

1. 저장 순서 유지X(순서가 없음)

2. 데이터 중복 불가

3. 메서드: Collection의 메서드와 동일. 그중에서 집합에 관련된 것만 다시 본다면 다음과 같다.

- 합집합: boolean addAll(Collection c)

- 부분집합: boolean containsAll(Collection c)

- 차집합: boolean removeAll(Collection c)

- 교집합: boolean retainAll(Collection c)

- 메서드 실행 후 Collection에 변화가 있다면 true, 없다면 false 반환

 

[Map 인터페이스]

1. 저장 순서 유지X(순서가 없음)

2. 키는 중복 불가, 값은 중복 허용

3. 메서드

void clear()
// Collection의 모든 객체를 삭제한다.

boolean containsKey(Object key)
boolean containsValue(Object value)
// 지정된 객체와 일치하는 것이 Map에 있는지 확인한다.

Set entrySet()
// Map에 저장되어있는 key-value쌍을 Map.Entry(key-value쌍)타입의 객체로 저장한 Set으로 반환한다.

boolean equals(Object o)
// 동일한 Map인지 비교한다.

Object get(Object key)
// 지정된 key객체에 대응하는 value객체를 반환한다.

int hashCode()
// Map의 hash code를 반환한다.

boolean inEmpty()
// Map이 비어있는지 확인한다.

Set keySet()
// Map에 저장된 모든 key객체를 반환한다.

Object put(Object key, Object value)
// Map에 value객체를 key객체에 연결(mapping)하여 저장한다.

void putAll(Map t)
// 지정된 Map의 모든 key-value쌍을 추가한다.

Object remove(Object key)
// 지정된 key객체와 일치하는 key-value객체를 삭제한다.

int size()
// Map에 저장된 key-value쌍의 수를 반환한다.

Collection values()
// Map에 저장된 모든 value객체를 반환한다.

[쿠키글] Collections?

위에 설명한 Collection은 인터페이스이고, Collections는 Collection과 관련된 유틸 클래스이다. sort 등의 메서드를 제공한다.

'Java' 카테고리의 다른 글

LinkedList 클래스  (0) 2022.11.02
ArrayList 클래스  (0) 2022.10.27
형식화 클래스  (0) 2022.10.21
캘린더 클래스  (0) 2022.10.12
문자열의 여러 가지 변환, 오토박싱, 언박싱  (0) 2022.10.11