-
[목터뷰] 스택과 큐의 차이(Stacks vs Queue)목터뷰 2023. 8. 7. 20:24
스택과 큐는 자바의 컬렉션 중 하나이다.
컬렉션
참조형 변수만 저장 할 수 있는 배열후입선출의 스택과 선입선출의 큐 스택
Stack- 후입선출後入先出(Last In First Out - LIFO) 방식의 자료 구조
- 나중에 들어온게 먼저나간다 > 바닥 없는 프링그스통
- push(요소추가) , peek(요소조회), pop(요소제거-최상단) 기능만 존재
- 최근 저장 된 데이터 나열, 데이터 중복처리를 막을때
- 뒤로가기, 실행취소, 문자열 뒤집기 등 롤백 처리해야 부분에서 사용
import java.util.ArrayDeque; public class StackExample { public static void main(String[] args) { ArrayDeque<Integer> stack = new ArrayDeque<>(); // 스택에 요소 추가 stack.push(10); stack.push(20); stack.push(30); // 스택에서 요소 제거 System.out.println(stack.pop()); // 결과: 30 System.out.println(stack.pop()); // 결과: 20 System.out.println(stack.pop()); // 결과: 10 } }
큐
Queue- 선입선출先入先出(First In First Out - FIFO) 방식의 자료 구조
- 먼저 들어오는게 먼저 나간다 > 빨대처럼
- add(요소추가), peek(요소조회), poll(요소제거 - 최하단)기능만 존재
- 생성자가 없는 인터페이스 다른 생성자(LinkedList) 이용
- 프린트 대기열, 티켓팅 대기, 프로세스 관리 등 입력순서대로 처리해야 하는 부분에서 사용
import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); // 큐에 요소 추가 queue.add("Alice"); queue.add("Bob"); queue.add("Charlie"); // 큐에서 요소 제거 System.out.println(queue.poll()); // 결과: Alice System.out.println(queue.poll()); // 결과: Bob System.out.println(queue.poll()); // 결과: Charlie } }
참고한 사이트
'목터뷰' 카테고리의 다른 글
인덱스란 무엇이고 일반적인 원리는 어떠한지 설명해실 수 있을까요? (0) 2023.08.22 Annotation이란 무엇이고 구체적으로 어떤 것이 있는지 예시를 들어 설명해주실 수 있을까요? (0) 2023.08.14 [목터뷰]Call by reference란 무엇이고 보통 어떻게 쓰이나요? (0) 2023.08.08 시간 복잡도 (Time complexity)&공간 복잡도 (Space complexity) (0) 2023.08.04 CORS 교차 출처 리소스 공유 (0) 2023.08.04