-
[Java] 스택(Stack)과 큐(Queue)Java/용어 2020. 3. 7. 18:10반응형
스택
- LIFO 구조, 마지막에 저장된 것을 제일 먼저 꺼냅니다.
큐
- FIFO 주고, 제일 먼저 저장한 것을 제일 먼저 꺼냅니다.
스택 메서드
- push
Stack에 객체를 저장합니다.
- pop
Stack의 맨 위에 저장된 객체를 꺼냅니다.
- peek
Stack의 맨 위에 저장된 객체를 반환합니다. Stack에서 꺼내지는 않습니다. 비었을 때 null을 반환합니다.
- empty
Stack이 비어있는지 알려줍니다. 있으면 true, 없으면 false를 반환합니다.
- search
Stack에서 주어진 객체를 찾아서 그 위치를 반환합니다. (배열과는 달리 1부터 시작합니다.)
큐 메서드
- add
Queue에 객체를 저장합니다.
성공하면 true, 실패하면 false를 반환합니다.
- element
삭제없이 저장된 요소를 읽어옵니다. peek와 다른 점은 queue가 비었을 때 Exception을 발생시킵니다. (peek()는 null을 반환합니다.)
- offer
Queue에 객체를 저장합니다. 성공하면 true, 실패하면 false를 반환합니다.
- peek
삭제없이 읽어옵니다. Queue가 비었을 때 null을 반환합니다.
- poll
Queue에서 꺼내옵니다. 비어있으면 null을 반환합니다.
- remove
Queue에서 꺼내옵니다. 비어있으면 예외를 발생시킵니다.
스택은 Stack 클래스로 구현하여 제공하고 있지만, 큐는 Queue 인터페이스로만 정의해 놓았을 뿐 별도의 클래스를 제공하고 있지 않습니다. 대신 Queue 인터페이스를 구현한 클래스들이 있어서 이 들 중의 하나를 선택해서 사용하면 됩니다.
예제
1234567891011121314151617181920212223242526272829303132333435import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class StackAndQueue {public static void main(String[] args) {Stack<String> stack = new Stack<String>();stack.push("0");stack.push("1");stack.push("2");Queue<String> queue = new LinkedList<String>();queue.offer("0");queue.offer("1");queue.offer("2");/*queue.add("3");queue.add("4");queue.add("5");*/System.out.println("Stack ===== S");while (!stack.empty()) {System.out.println(stack.pop());}System.out.println("Stack ===== E");System.out.println("Queue ===== S");while (!queue.isEmpty()) {System.out.println(queue.poll());}System.out.println("Queue ===== E");}}cs Stack - Java 8 API
https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html
Queue - Java 8 API
https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html
출처 : 자바의 정석
반응형'Java > 용어' 카테고리의 다른 글
[Java] 상속(Inheritance), 인터페이스(Interface) (0) 2019.04.30 [Java] 오버라이딩(Overriding) (0) 2019.04.30 [Java] 오버로딩(Overloading) (0) 2019.04.30 [Java] 객체 지향의 4대 특성 (0) 2019.04.30 [Java] 웹 개발자(Java, Spring) 기술 면접 예상 질문 (0) 2018.12.28