java - 스택, 큐, ArrayDeque

yuns·2022년 9월 26일
0

Java

목록 보기
5/16
post-thumbnail

스택(stack)

마지막에 저장한 데이터를 가장 먼저 꺼냄.
LIFO(Last In First Out)형태 라고도 한다.

만드는 법

Stack<타입> 스택이름 = new Stack<>();

값 넣는 법

스택이름.push(넣을 값);

맨 마지막 값 보는 법

꺼내지 않고 확인만 함.

스택이름.peek();

맨 마지막 값 가져오는 법

값을 가져와서 리턴함. 스택의 길이가 줄어든다.

스택이름.pop();

값이 있는지 확인

스택이름.contains();

스택이 비어있는지 확인

스택이름.empty()

        Stack<Integer> stack = new Stack<>();
        stack.push(1);
        stack.push(3);
        stack.push(5);
        stack.push(7);
        stack.push(4);
        System.out.println(stack);

        System.out.println(stack.peek());
        System.out.println(stack.size());
        System.out.println(stack.pop());
        System.out.println(stack.size());

        System.out.println(stack.contains(1));
        System.out.println(stack.empty());

큐 (queue)

첫 번째 저장하는 값이 가장 먼저 나옴.
큐는 인터페이스이기 때문에 구현체가 필요하다.

만드는 법

Queue 큐이름 = new LinkedList<>();

값 넣는 법

큐이름.add(넣을 값);

첫번째 값 가져오는 법

값을 가져와서 리턴함. 큐의 길이가 줄어든다.

큐이름.poll();

첫번째 값 보는 법

큐이름.peek();

clear, isEmpty 스택과 같이 모두 존재함


ArrayDeque

기본 스택과 큐의 기능을 포함하면서도 pop, push, pull 함수도 가능하여 성능이 더 좋음
즉, 값이 양쪽에서 삽입되고 꺼내질 수 있음.

만드는 법

ArrayDeque<타입> 이름 = new ArrayDeque<>();

앞에 값 넣는 법

이름.addFirst();

앞자리에 값을 계속 넣으면 원래 앞자리에 있던 값이 뒤로 밀려남.

      ArrayDeque<Integer> arrDeque = new ArrayDeque<>();
      arrDeque.addFirst(1);
      arrDeque.addFirst(3);
      arrDeque.addFirst(5);
      arrDeque.addFirst(4);
      System.out.println(arrDeque); // 4,5,3,1 출력

뒤에 값 넣는 법

이름.addLast();

앞, 뒤에 값 넣는 법 2

addFirst와 다른점 : 어레이 디큐의 길이 등에 문제가 있을 때 에러가 나지 않고 false를 반환

이름.offerFirst();
이름.offerLast();

스택과 큐에서 사용했던 push, pop, poll, pollFirst, pollLast, peek, size, clear, isEmpty함수도 제공

0개의 댓글