반응형
Stack
▶ 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료구조
▶ 한쪽 끝에서만 새로운 항목을 삽입하거나 기존의 항목을 제거할 수 있다.
(L)ast (I)n (F)irst (O)ut ==> LIFO방식
▶Vector 클래스를 상속받아서 구현된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package stack; import java.util.Stack; import java.util.Vector; public class StackTest { public static void main(String[] args) { // stack은 Vector를 상속받는다. //Vector<String> stack = new Stack<String>(); Stack<String> s = new Stack<String>(); // s.push("a"); // s.push("b"); // s.push("c"); // // while(!s.isEmpty()) { // String value = s.pop(); // System.out.println(value); // } // // s.pop(); // Exception occurs when stack is empty s.push("a"); s.push("b"); s.push("c"); System.out.println(s.pop()); System.out.println(s.peek()); // 제일 위에 어떤 값이 있는지 확인만 해줌, pop은 안함.. System.out.println(s.pop()); } } | cs |
Queue
▶ 리스트와 유사한 자료구조
▶ 항목들의 리스트에서 가장 마지막에 새로운 항목이 추가된다.
▶ 기존 항목의 제거는 리스트의 처음에서 일어난다.
(F)irst (I)n (F)irst (O)ut ==> FIFO방식
▶ LinkedList를 상속받아서 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package queue; import java.util.LinkedList; import java.util.Queue; public class QueueTest { public static void main(String[] args) { // Queue는 LinkedList를 상속받는다. // Queue ==> (F)irst (O)ut (F)irst (I)n // Queue는 KAFKA(Message Queue)에서 많이 사용한다. Queue<String> q = new LinkedList<String>(); //데이터 삽입 q.offer("a"); q.offer("b"); q.offer("c"); // 데이터 출력 while(!q.isEmpty()) { String value = q.poll(); System.out.println(value); } } } | cs |
반응형
'Programming Language > JAVA' 카테고리의 다른 글
[Java]Overriding / Overloading이 뭐야? 같은거 아냐? (2) | 2018.12.27 |
---|---|
[Java] final 넌 누구냐?! (2) | 2018.12.27 |
[Java] 접근 제한자(Access Modifier)에 대해서 알아보자 (2) | 2018.12.27 |
[급여관리 프로그램(Has~A 만) (24) | 2018.07.16 |
[Java]Enum (0) | 2018.07.12 |