728x90
★ ADT
- Abstract Data Type
- Stack, Queue
- 물리적인 특성은 배열과 동일한데, 사용법이 특별한 자료형
1. Queue
- 선입선출
- FIFO
- 소스코드
public static void main(String[] args) {
//선입선출
Queue<String> queue = new LinkedList<String>();
//1. 요소 추가하기
queue.add("빨강");
queue.add("노랑");
queue.add("파랑");
//2. 요소 개수
System.out.println(queue.size());
//3. 요소 읽기(=꺼내기)
System.out.println(queue.poll());
System.out.println(queue.size());
System.out.println(queue.poll());
System.out.println(queue.size());
System.out.println(queue.poll());
System.out.println(queue.size());
//값이 비어있어서 null값을 반환
System.out.println(queue.poll());
//4. 비었는지?
System.out.println(queue.size() ==0);
System.out.println(queue.isEmpty());
//5. 구경하기
queue.add("초록");
System.out.println(queue.peek());
System.out.println(queue.size());
}
}
2. Stack
- 후입 선출
- LIFO
- 소스코드
public class Ex76_Stack {
public static void main(String[] args) {
//후입 선출
Stack<String> stack = new Stack<String>();
//1. 요소 추가하기
stack.push("빨강");
stack.push("노랑");
stack.push("파랑");
//2. 요소 개수 확인
System.out.println(stack.size());
// //3. 요소 읽기(= 꺼내기 = 삭제하기)
// System.out.println(stack.pop());
// System.out.println("사이즈 : "+ stack.size());
//
// System.out.println(stack.pop());
// System.out.println("사이즈 : "+ stack.size());
//
// System.out.println(stack.pop());
// System.out.println("사이즈 : "+ stack.size());
//
// //System.out.println(stack.pop());
// // 사이즈가 0이기 때문에 에러 발생.
while (stack.size() > 0) {
System.out.println(stack.pop());
}
//4. 스택이 비어있는지?
System.out.println(stack.size()==0);
System.out.println(stack.isEmpty());
stack.push("빨강");
stack.push("노랑");
stack.push("파랑");
//5.마지막 요소가 무엇인지 확인하는 메소드 즉, 다음번 pop이 될 데이터를 확인만 하는 용도
System.out.println(stack.peek());
System.out.println(stack.size());
}
}
728x90
'자바' 카테고리의 다른 글
JAVA STEP 36. 컬렉션(HashMap) (0) | 2023.02.24 |
---|---|
JAVA STEP 35. Queue&Stack 직접 구현하기 (0) | 2023.02.23 |
JAVA STEP 33. ArrayList 직접 구현하기 (0) | 2023.02.23 |
JAVA STEP 32. 컬렉션(ArrayList) (0) | 2023.02.23 |
JAVA STEP 31. abstract&Object&Generic (0) | 2023.02.22 |