스택 - LIFO 구조, 마지막에 저장된 것을 제일 먼저 꺼내게 된다.
큐 - FIFO 구조, 제일 먼저 저장된 것을 제일 먼저 꺼내게 된다.
스택
- boolean empty() : 비어있는지 확인
- Object peek() : 맨위의 값 반환 꺼내지는 않는다. 비었을 때는 EmptyStackException 발생
- Object pop() : 맨위의 값 반환 꺼낸다. 비었을 때는 EmptyStackException 발생
- Object push(Object item) : 객체 저장
- int search(Object o) : 객체의 위치를 반환 못찾으면 -1 위치는 1부터 시작
큐
- boolean add(Object o) : 객체를 큐에 추가. 저장공간이 부족하면 IllegalStateException 발생
- Object remove() : 객체를 꺼내어 반환 비어있으면 NoSuchElementException 발생
- Object element() : 삭제없이 요소를 읽어온다. 객체를 꺼내어 반환 비어있으면 NoSuchElementException 발생
- boolean offer(Object o) : 큐에 객체를 저장 ** 예외 발생 안함
- Object Poll() : 객체를 꺼내어 반환 ** 비어있으면 null 반환 예외 발생 안함
- Object peek() : 삭제 없이 요소를 읽어온다. ** 예외 발생 안함
큐는 인터페이스 큐를 구현한 클래스를 사용하면 된다.
LinkedList 가 있음 이것을 이용해서 큐를 사용하면 된다.
Queue q = new LinkedList<Integer>();
활용 예
- 스택 : 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 브라우저의 뒤로/앞으로
- 큐 : 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
'개발' 카테고리의 다른 글
Java - Comparator와 Comparable (0) | 2021.06.06 |
---|---|
Java - Arrays (0) | 2021.06.06 |
Java - LinkedList (0) | 2021.06.06 |
Java - ArrayList (0) | 2021.06.06 |
Java - 컬렉션 프레임웍(collections framework) (0) | 2021.06.06 |