본문 바로가기
BackEnd/Java

[Java] 스택(Stack), 큐(Queue)

by summer_light 2021. 7. 19.

스택 Stack

쌓아 올리는 것

 

자료를 정해진 방향으로만 쌓을 수 있다.
가장 마지막에 입력된 자료가 가장 먼저 읽힌다. (LIFO)

※ LIFO: Last In First Out, 후입 선출구조

  • 자료 저장: push
  • 자료 읽기: pop

사용 : 브라우저 사용기록, 실행 취소 

 

주요 메소드 

  • push(): 객체 입력
  • peek(): 스택의 맨 위 객체를 가져온다. 제거 x
  • pop(): 스택의 맨 위 객체를 가져온다. 제거 o
Stack st = new Stack();
st.push("1");
st.push("2");
st.push("3");
st.push("4");
st.push("5");

//추출
while (!st.isEmpty()) {
String str = st.pop();
System.out.println(str);
}

결과:

5
4
3
2
1

→ 스택은 후입선출구조(LIFO) 이므로 마지막에 입력된 5부터 출력된다. 

 

 


Queue

줄 서서 기다리는 것


한쪽에서는 입력이, 다른 쪽에서는 출력이 실행된다.
먼저 입력된 자료를 먼저 출력한다. (FIFO)

※ FIFO:  First In First Out, 선입 선출구조

사용 : 프린트 출력, 프로세스 실행

 

주요 메소드

  • offer(): 객체 입력
  • peek(): 큐의 객체를 가져온다. 제거X
  • poll(): 큐의 객체를 가져온다. 제거O

    Queue<String> qu = new LinkedList<String>();
    qu.offer("1");
    qu.offer("2");
    qu.offer("3");
    qu.offer("4");
    qu.offer("5");
    
    while (!qu.isEmpty()) {
    String str = qu.poll();
    System.out.println(str);​
    결과:
    1
    2
    3
    4
    5
    → 큐는 선입선출구조(FIFO)이므로, 가장 먼저 입력된 1부터 출력된다. 

'BackEnd > Java' 카테고리의 다른 글

[Java] 예외 Exception  (0) 2021.07.19
[Java] 2진트리 Binary Tree  (0) 2021.07.19
[Java] 맵 Map  (0) 2021.07.19
[Java] Hash set  (0) 2021.07.19
[Java] VirtualBox 설치  (0) 2021.07.19

댓글