Collection Framework란?
데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래수로 구현해 놓은 것
Collection Framework는 자바의 인터페이스(interface)를 사용하여 구현된다.
Collection Framework 주요 인터페이스
인터페이스 | 설명 | 구현 클래스 |
List<E> | 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용 | Vector, ArrayList, LinkedList, Stack, Queue |
Set<E> | 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음. | HashSet, TreeSet |
Map<K, V> | 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없음. 키는 중복을 허용하지 않지만, 값은 중복 허용 |
HashMap, TreeMap, HashTable, Properties |
Collection 인터페이스
List와 Set 인터페이스의 많은 공통된 부분을 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 타입의 배열로 반환함. |
Stack 메소드
메소드 | 설명 |
boolean empty() | 비어있는지 확인 |
Object peek() | Stack의 맨 위에 저장된 객체를 반환 pop()과 달리 Stack에서 객체를 꺼내지 않음 비었을 때는 EmptyStackException 발생 |
Object pop() | Stack의 맨 위에 저장된 객체를 꺼냄 비었을 때는 EmptyStackException 발생 |
Object push(Object item) | Stack에 객체를 저장 |
int search(Object o) | Stack에서 주어진 객체를 찾아서 그 위치를 반환, 못 찾으면 -1을 반환 배열과 달리 위치가 1부터 시작 |
Queue 메소드
메소드 | 설명 |
boolean add(Object o) | 지정된 객체를 Queue에 추가 성공하면 true를 반환, 저장공간이 부족하면 illegalStateException 발생 |
Object peek() | 삭제없이 요소를 읽어온다. Queue가 비어있으면 null을 반환 |
Object remove() | Queue에서 객체를 꺼내 반환 비어있으면 NoSuchElementException 발생 |
Object element() | 삭제없이 요소를 읽어옴 peek와 달리 Queue가 비었을 때 NoSuchElementException 발생 |
boolean offer(Object o) | Queue에 객체를 저장 성공하면 true, 실패하면 false를 반환 |
Object poll() | Queue에서 객체를 꺼내서 반환. |
Stack<Integer> st = new Stack<>();
st.push(1);
st.push(2);
System.out.println(st.peek()); // 2
st.pop();
System.out.println(st.peek()); // 1
st.pop();
System.out.println(st.empty());
System.out.println("===========");
Queue<Integer> q = new LinkedList<>();
q.add(1);
q.add(2);
System.out.println(q.peek()); // 1
q.remove();
System.out.println(q.peek()); // 2
- http://www.tcpschool.com/java/java_collectionFramework_concept
'프로그래밍 > Java' 카테고리의 다른 글
객체지향 프로그래밍(OOP) 기본 (0) | 2022.02.28 |
---|