컬렉션_스택&큐

2024. 2. 15. 16:55JAVA

스택

Last In First Out 구조. 마지막에 저자아된 것을 가장 먼저 꺼낸다.

 

저장(push)

추출(pop)

 

큐(Queue)

First In First Out 구조. 들어간 순서대로 나온다.

저장(offer)

추출(poll)

 

 

Stack 주요 메서드

boolean empty() - Stack이 비어있는지 알려줌.

Object peek() - Stack 중 가장 마지막에 올려진 객체를 반환함. pop()과 다르게, 스택에서 객체를 제거하지는 않는다.

Obejct pop() - Stack의 가장 위에 저장된 객체를 꺼냄. (Stack이 비어있다면 EmptyStackException 이 발생함)

Obejct push() - Stack에 객체를 저장함.

int search(Object o) - Stack에서 주어진 객체(o)를 찾아 그 위치를 반환함. 없다면 -1 반환함. (배열과 다르게 시작 번호 1임)

 

Queue 주요 메서드

boolean add(Obejct o) - 지정된 객체를 Queue에 추가한다. 성공하면 true, 저장공간 부족 시, IllegalStateException 발생

Object Remove() - 큐에서 객체를 꺼내 반환한다. 비어있으면 NoSuchElementException이 발생한다.

Object element() - 삭제 없이 요소를 읽어온다. Stack의 peek()과 다르게 큐가 비었을 때 NoSuchElementException이 발생한다.

boolean offer(Object o) - 큐에 객체를 저장한다. 성공하면 true, 실패하면 false 반환

Object poll() - 큐에서 객체를 꺼내 반환한다. 비어 있으면 null 반환

Object peek() - 삭제 없이 요소를 읽어온다. 큐가 비었다면 null 반환

--> Exception 터질 게 뻔한 add(), remove(), element() 쓸 필요 있나? Queue 쓸 땐, offer(), poll(), peek() 쓰자.

'JAVA' 카테고리의 다른 글

컬렉션_Iterator 과 Map  (0) 2024.02.17
컬렉션_Iterator  (0) 2024.02.17
컬렉션_LinkedList  (0) 2024.02.15
컬렉션_ArrayList  (0) 2024.02.14
컬렉션_프레임 워크  (0) 2024.02.13