티스토리 뷰
스택 Stack
- 데이터를 아래에서 위로 차례대로 쌓는 구조로 삽입과 삭제가 항상 한 쪽(Top)에서 이루어진다.
- LIFO : 마지막에 추가된 데이터가 먼저 삭제됨 = FILO
- Redo/Undo 기능에 활용된다. Backwrad, Forward로 구분하여 사용된다.
Stack stack = new Stack();
stack.push("1");
stack.push("2");
stack.push("3");
System.out.println(stack); // toString() 생략
// 출력: [1, 2, 3]
System.out.println(stack.push("4")); // 데이터 추가
// 출력: 4
Object peek()
스택 맨 위의 요소(마지막에 추가된 데이터)를 제거하지 않고 리턴한다.
System.out.println(stack.peek()); // 4
System.out.println(stack.peek()); // 4
Object pop()
스택 맨 위의 요소를 제거하고 리턴한다.
System.out.println(stack.pop()); // 4
System.out.println(stack.pop()); // 3
큐 Queue
- 한 쪽에서 데이터가 추가되면 반대편에서 삭제가 일어나는 구조
- FIFO : 먼저 추가된 데이터가 가장 먼저 삭제됨 = LILO
- 인터페이스로 제공되며, 실제 구현은 LinkedList 클래스를 사용한다.
- 최근 문서 항목 또는 선착순 대기열의 번호표 시스템 등에 활용된다.
Queue q = new LinkedList();
q.offer("1 - java");
q.offer("2 - jsp");
q.offer("3 - db");
System.out.println(q); // [1 - java, 2 - jsp, 3 - db]
boolean offer(Object o)
요소 o를 추가하고 결과를 boolean 타입으로 리턴한다.
System.out.println(q.offer("4 - web")); // true
System.out.println(q); // [1 - java, 2 - jsp, 3 - db, 4 - web]
Object peek()
큐의 끝 요소(먼저 추가된 데이터)를 제거하지 않고 리턴한다.
Object poll()
스택 끝 요소를 제거하고 리턴한다.
'배운 것 기록 > java' 카테고리의 다른 글
String 메서드 (0) | 2022.06.21 |
---|---|
Iterator, Map (0) | 2022.06.20 |
Set, List (0) | 2022.06.18 |
Wrapper (0) | 2022.06.14 |
enum (0) | 2022.06.10 |
댓글