-
(JAVA) Stack 과 Queue 자료구조JAVA 2021. 7. 19. 16:57
자바 컬렉션에는 ArrayList, LinkedList, Stack, Queue 같은 편리한 자료구조들이 구현되어 있다.
그 중 Stack과 Queue에 대해서 정리해 보려고 한다.
1. Stack
- FILO(First In Last Out) : 선입후출의 방식으로 가장 먼저 삽입한 원소가 가장 나중에 나오게 된다.
- 입구와 출구가 같고 1개 뿐인 선형구조
- 구조 상 배열과 비슷해서 배열을 기반으로 만들어짐
- 실행 취소, 뒤로가기, 최근 방문한 페이지 등등의 기능을 구현할 시 많이 사용되는 자료구조이다.
1234567891011121314151617package day16;import java.util.Stack;public class Test5 {public static void main(String[] args) {Stack <Integer> s = new Stack();s.push(10);s.push(20);s.push(30);s.pop();s.peek(); // pop과 동일한 출력을 보이지만 삭제를 동반하지는 않는다.System.out.println(s);}}cs - 위는 간단한 사용예시로 출력 결과는 [10,20]이 된다.
2. Queue
- FIFO(First In First Out) : 선입선출의 방식으로 가장 먼저 넣은 원소가 가장 먼저 나오게 된다.
- 입구와 출구가 각각 정해져 있는 선형구조
- 대기열, 수강신청, 티켓팅 등등의 기능을 구현할 시 많이 사용되는 자료구조이다.
- 양방향으로 삽입이 간단한 링크드 리스트 기반으로 만들어졌다.
123456789101112131415161718package day16;import java.util.LinkedList;import java.util.Queue;public class Test5 {public static void main(String[] args) {Queue q = new LinkedList(); // 사용법 주의!q.offer(10);// push와 같음q.offer(20);q.offer(30);System.out.println(q.poll()); // pop과 같음System.out.println(q);}}cs - Queue의 간단한 사용 예시로 [20,30]이 출력된다.
- offer와 poll은 메소드명이 익숙하지 않다. 하나로 통일하면 더 좋았을 것 같다..
'JAVA' 카테고리의 다른 글
(JAVA / JDBC) JDBC로 JAVA와 DB 연결하기 - Mysql (0) 2021.07.26 (JAVA) Queue를 이용한 간단한 영화관 대기열 프로그램 만들기 (0) 2021.07.19 (JAVA) 다형성과 동적 바인딩 (0) 2021.07.19 (JAVA) 추상화와 추상클래스 (0) 2021.07.19 (JAVA) 객체 지향 언어의 특징 (0) 2021.07.18