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