본문 바로가기
프로그래밍/JAVA

[JAVA] Stack과 Queue 사용법

by tempus 2021. 11. 8.
반응형

StackQueue는 코팅 테스트에서 심심치 않게 나오는 친구들입니다. 가끔 풀다 보면 까먹는 경우가 있어서StackQueue의 간단한 개념만 잡고 JAVA에서 어떻게 사용하는지 정리해보려고 합니다.

 

간단 개념

  • Stack : 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO(Last-In-First-Out)인 자료구조
  • Queue : 먼저 들어간 데이터를 먼저 꺼내는 FIFO(First-In-First-Out)인 자료구조

 

사용법

 

Stack

Stack<Integer> stack = new Stack<>();

stack.push(1);
stack.push(2);
stack.peek(); // 2를 return , stack = [1, 2]
stack.pop(); // 2를 return  , stack = [1]
  • push(object item) : Stack에 객체(item) 저장
  • peek() : Stack에 맨 위의 저장된 객체를 반환, 객체를 꺼내지는 않음(Stack에 비어 있을 경우 EmptyStackException발생)
  • pop() : Stack의 맨 위에 저장된 객체를 반환, 객체를 꺼냄 (Stack에 비어 있을 경우 EmptyStackException발생)
  • isEmpty() : Stack이 비어있는지 boolean값으로 반환

 

Queue

Queue<Integer> queue = new LinkedList<>();

queue.offer(1);
queue.offer(2);
queue.peek(); // 1를 return, queue = [1,2]
queue.poll(); // 1를 return  , queue = [2]
  • offer(object item) : Queue에 객체(item) 저장
  • peek() : Queue에 맨 위의 저장된 객체를 반환, 객체를 꺼내지는 않음(Queue가 비어 있을 경우 null 반환)
  • pop() : Queue의 맨 앞에 저장된 객체를 반환 (Queue가 비어 있을 경우 null 반환)
  • isEmpty() : Queue이 비어있는지 boolean값으로 반환

 

반복문 사용법

Queue

Queue<Integer> queue = new LinkedList<>();

queue.offer(1);
queue.offer(2);

//while문 사용
while(!queue.isEmpty()){

    int temp = queue.poll(); // 1 -> 2 로 순회 
    /****************
    *
    * 활용할 로직 작성
    *
    ***************/
}

//iterator 사용
Iterator<Integer> iter = queue.iterator();
while(iter.hasNext()){
    int temp = iter.next(); // 1 -> 2 로 순회
    /****************
    *
    * 활용할 로직 작성
    *
    ***************/
}

 

Stack

Stack<Integer> stack = new Stack<>();

stack.push(1);
stack.push(2);

//while문 사용
while(!stack.isEmpty()){

    int temp = stack.pop(); // 2 -> 1로 순회
    /****************
    *
    * 활용할 로직 작성
    *
    ***************/
}

//iterator 사용
Iterator<Integer> iter = stack.iterator();
while(iter.hasNext()){
    int temp = iter.next(); // 1 -> 2로 순회
    /****************
    *
    * 활용할 로직 작성
    *
    ***************/
}
반응형

댓글


loading