Collection Framework란?

데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래수로 구현해 놓은 것

Collection Framework는 자바의 인터페이스(interface)를 사용하여 구현된다.

 

Collection Framework 주요 인터페이스

http://www.tcpschool.com/java/java_collectionFramework_concept

인터페이스 설명 구현 클래스
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

- https://www.javatpoint.com/collections-in-java

'프로그래밍 > Java' 카테고리의 다른 글

객체지향 프로그래밍(OOP) 기본  (0) 2022.02.28

+ Recent posts