티스토리 뷰

배운 것 기록/java

Stack, Queue

키죽 2022. 6. 19. 20:09

스택 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
댓글
최근에 올라온 글
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함