Stack은 데이터를 쌓아 올리는 구조이다. Stack의 가장 큰 특징은 가장 나중에 들어간것이 먼저 나오는 후입선출 (Last In First Out) 형식인 것이다. 또한, 자바 컬랙션 List Interface의 한 종류이다.
Stack 기본 메서드
Stack<Integer> stack = new Stack(); //선언 stack.push(1); //stack에 값 1 추가 stack.push(2); //stack에 값 2 추가 stack.peek(); //stack의 가장 상단의 값 반환 stack.size(); //stack의 크기 반환 stack.pop(); //stack의 값 2 삭제 stack.empty(); // stack이 비어있는지 check (비어있다면 true 반환) stack.contains(1); // stack에 1이 있는지 check (있다면 true 반환)
Queue는 줄을 지어 순서대로 처리하는 구조이다. Queue의 가장 큰 특징은 먼저 들어온 데이터가 가장 먼저 나가는 구조 선입선출 (First In First Out) 형식인 것이다. 또한, 자바 컬랙션에서 Collection Interface를 상속받은 한 Interface이다.
Stack 기본 메서드
Queue<Integer> queue = new LinkedList<>(); //선언 queue.add(1); //queue에 값 1 추가 queue.offer(2); //queue에 값 2 추가 queue.offer(3); //queue에 값 3 추가 queue.peek(); //queue의 처음 값 반환 queue.size(); //queue의 크기 반환 queue.poll(); //queue의 처음 값 반환 및 제거 (만약, queue 가 비어있으면 null 반환) queue.remove(); //queue의 처음 값 반환 및 제거 (만약, queue 가 비어있으면 exception) queue.contains(1); //queue에 1이 있는지 check (있다면 true 반환)
public static void main(String[] args) { Stack<Integer> stack = new Stack<>(); Queue<Integer> queue = new LinkedList<>(); stack.add(1); stack.add(2); stack.add(3); queue.offer(1); queue.offer(2); queue.offer(3); System.out.println("----STACK----"); while(!stack.isEmpty()){ System.out.println(stack.pop()); } System.out.println("----QUEUE----"); while (!queue.isEmpty()){ System.out.println(queue.poll()); } //출력 ----STACK---- (후입 선출) 3 2 1 ----QUEUE----(선입 선출) 1 2 3 }
공감하며 읽었습니다. 좋은 글 감사드립니다.