-
큐는 먼저 들어간 데이터가 먼저 나오는 FIFO 구조이고, 스택의 경우 마지막에 저장한 데이터를 먼저 꺼내는 LIFO 구조로 되어있다.
먼저 스택의 경우 import java.util.Stack;를 통해 먼저 importf를 해주고 Stack<자료형> 객체명 = new Stack<>(); 와 같은 방식으로 객체를 선언해 사용한다.
스택 메서드
boolean empty() - true , false로 비었는지 리턴해 준다.
Object peek() - 스택의 최상위 (마지막에 넣은) 객체를 반환 / Only 출력 개념
Object pop() - 스택의 최상위 객체를 꺼낸다 / 꺼내면 객체는 사라짐
Object push(Object item) - 스택에 객체를 저장한다.
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); Stack<Integer> s = new Stack<>(); //스택 객체를 선언해준다 뒤에<>는 안에 변수형 생략 가능 System.out.println("스택 메뉴"); System.out.println("1. push"); System.out.println("2. pop"); System.out.println("3. empty"); while(true) { System.out.print("메뉴를 선택하세요: "); int menu = in.nextInt(); switch (menu) { case 1: { System.out.print("push할 숫자 입력: "); int a = in.nextInt(); s.push(a); // push 메서드 사용해서 입력 숫자 push break; } case 2: { if(s.empty()) { System.out.println("스택이 비었습니다."); } else { System.out.print("pop한 숫자는 : "); System.out.println(s.peek()); // 마지막 데이터를 출력해줌 s.pop(); // 마지막 데이터를 제거 } break; } case 3:{ if(s.empty()) { System.out.println("스택이 비었습니다."); } else { System.out.println("스택이 차있습니다."); } break; } default: System.out.println("올바를 숫자를 입력하세요."); } } } }
위의 소스는 간단하게 스택 클래스를 이용해 스택을 구현해 본 소스 코드이다.
다음은 큐의 경우 import java.util.Queue; , import java.util.LinkedList;를 import 하여 사용한다. 선언은 LQueue<변수형> 객체명 = new LinkedList<>();로 선언을 한다.
큐 메서드
boolean isEmpty() - true , false로 비었는지 리턴해 준다.
boolean offer(Object o) - Queue에 객체 저장 ( true : 성공, false : 실패 ) 반환
Object peek() - 저장된 객체를 반환 / 없을 경우 Null 을 반환
Object poll() - 객체를 꺼내온다 / 꺼낸 객체는 사라진다.
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); Queue<Integer> q = new LinkedList<>(); System.out.println("큐 메뉴"); System.out.println("1. offer"); System.out.println("2. poll"); System.out.println("3. isEmpty"); while(true) { System.out.print("메뉴를 선택하세요: "); int menu = in.nextInt(); switch (menu) { case 1: { System.out.print("offer할 숫자 입력: "); int a = in.nextInt(); q.offer(a); break; } case 2: { if(q.isEmpty()) { System.out.println("큐가 비었습니다."); } else { System.out.print("poll한 숫자는 : "); System.out.println(q.peek()); q.poll(); } break; } case 3:{ if(q.isEmpty()) { System.out.println("큐가 비었습니다."); } else { System.out.println("큐가 차있습니다."); } break; } default: System.out.println("올바를 숫자를 입력하세요."); } } } }
위의 소스는 간단하게 큐 클래스를 이용해 큐를 구현해 본 소스 코드이다.
728x90'공부 > JAVA' 카테고리의 다른 글
Set, HashSet, LinkedHashSet, TreeSet 사용법 & 간단 사용 예제 (0) 2021.10.31 List, ArrayList, LinkedList 사용법 & 간단 사용 예제 (0) 2021.10.30 HashMap, TreeMap 사용법 & 간단 사용 예제 (0) 2021.10.30 Comparable, Comparator 사용하기 JAVA (0) 2021.10.30 순열 조합 주사위 테스트 JAVA (0) 2021.10.30 댓글