Java - Stack & Queue
2020. 6. 30. 23:21ㆍJava
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class Ex5 {
public static void main(String[] args) {
/*
* Stack(스택) vs Queue(큐)
*
* 1.Stck
* 데이터를 차례대로 쌓는 자료구조(TOP & BOTTOM)
* ->FILO(First In Last Out) 또는 LIFO(Last In First Out)구조
* ->TOP 에서 데이터 추가, TOP 에서 데이터 제거(삽입/삭제가 한 곳에서 이루어짐)
* -웹 브라우저의 뒤로/앞으로 기능, 응용프로그램의 Undo/Redo 기능에 주로 사용
* (Stack 객체 2개를 활용하여 구현)
*
* 2.Queue
* 한 쪽에서 추가, 반대편에서 삭제가 이루어지는 자료구조
* ->FIFO(First In First Out) 또는 LILO(Last In Last Out) 구조
* 구현체 클래스 : LinkedList(List 와 Queue를 모두 구현한 클래스)
* 은행 번호표, 응용프로그램의 최근 사용문서 기능에 주로 사용
*
*/
Stack stack=new Stack();
//push(Object o) : 요소 추가
stack.push("1 - www.itwillbs.co.kr");
stack.push("2 - www.naver.co.kr");
stack.push("3 - www.google.co.kr");
System.out.println("stack의 모든요소 : "+stack);
//peek() : 스택 맨 위의 요소 확인(제거하지 않음)
System.out.println("스택 맨 위의 요소(peek) : "+stack.peek());
System.out.println("스택 맨 위의 요소(peek) : "+stack.peek());
System.out.println("stack의 모든요소 : "+stack);
//pop() : 스택 맨 위의 요소 확인(학인된 요소 제거함 = 꺼내기)
System.out.println("스택 맨 위의 요소(pop) : "+stack.pop());
System.out.println("스택 맨 위의 요소(pop) : "+stack.pop());
System.out.println("stack의 모든요소 : "+stack);
System.out.println("----------------------------");
Queue q=new LinkedList();
q.offer("1 - Ex.java");
q.offer("2 - Test.jsp");
q.offer("3 - member.sql");
System.out.println("큐의 모든 요소 : "+q);
//peek() : 큐의 가장 오래된 요소(먼저 추가된 요소) 확인(제거하지 않음)
System.out.println("큐의 가장 오래된 요소 : "+q.peek());
System.out.println("큐의 가장 오래된 요소 : "+q.peek());
System.out.println("큐의 모든 요소 : "+q);
//poll() : 큐의 가장 오래된 요소(먼저 추가된 요소) 확인(제거)
System.out.println("큐의 가장 오래된 요소(꺼내기) : "+q.poll());
System.out.println("큐의 가장 오래된 요소(꺼내기) : "+q.poll());
System.out.println("큐의 모든 요소 : "+q);
}
}
|
cs |
Stack과 Queue를 배워보았는데 Stack 은 후입 선출 즉, 나중에 들어온 게 데이터가 먼저 나가는 구조이고
Queue는 선입선출로 먼저 입력된 데이터가 먼저 나가는 구조로 이루어져 있다.
웹 개발에서는 주로 Stack을 사용하고 Queue는 번호표 뽑기와 같은 기능을 하기 때문에 잘 사용을 하지는 않지만
둘 다 중요하다고 할 수 있다. 지금은 그저 이런 게 있다는 것만 배워 보았고, Stack & Queue의 메서드를 몇 가지 사용해보고 자료의 삭제와 추가로 후입 선출과 선입선출의 구조를 확인해 보았다.
'Java' 카테고리의 다른 글
Java - Date,time,Calendar (0) | 2020.06.30 |
---|---|
Java - Generic (0) | 2020.06.30 |
Java - Collection 프레임워크의 Map (0) | 2020.06.30 |
Java - BigInteger,BigDecimal (0) | 2020.06.30 |
Java - StringBuilder & StringBuffer (0) | 2020.06.30 |