컬렉션_스택&큐
스택
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() 쓰자.