JAVA

컬렉션_스택&큐

고민말고생각하는사람 2024. 2. 15. 16:55

스택

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() 쓰자.