반응형
Stack, Queue 란?
- Stack과 Queue란 둘 다 자료구조의 종류 중 하나
- Stack은 LIFO(Last In First Out),
- Queue는 FIFO(First In First Out) 형식의 자료구조.
Stack의 메서드
push(Object o)
- stack의 맨 뒤에 값 추가, 추가된 값 return
pop()
- stack의 마지막 값 return 후 삭제
peek()
- stack의 마지막 값 return (삭제 X)
isEmpty()
- stack이 비어있는지 여부 return
search(Object o)
- stack에 o가 몇번째에 있는지 return
- 맨 뒷자리부터 1, 2, 3, ... return
- 존재하지 않으면 -1 return
size()
- stack의 크기 return
Stack 예제
package StackQueue;
import java.util.Stack;
public class StackMain {
public static void main(String[] args) {
Stack<Integer> s = new Stack<Integer>();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
System.out.println(s);
int p;
p = s.peek();
System.out.println(p);
System.out.println(s);
p = s.pop();
System.out.println(p);
System.out.println(s);
System.out.println(s.search(3));
}
}
결과
[1, 2, 3, 4]
4
[1, 2, 3, 4]
4
[1, 2, 3]
1
Queue의 메서드
add(Object o), offer(Object o)
- queue에 값 추가, 성공시 true return
- 실패시 add()는 exception 발생, offer()은 false return
poll(), remove()
- queue의 첫번째 값 return 후 삭제
- 실패시 poll()은 null return, remove()는 exception 발생
peek(), element()
- queue의 첫번째 값 return
- 실패시 peek()은 null return, element()는 exeption 발생
isEmpty()
- queue가 비어있는지 여부 return
size()
- queue의 크기 return
Queue 예제
package StackQueue;
import java.util.LinkedList;
import java.util.Queue;
public class QueueMain {
public static void main(String[] args) {
Queue<Integer> q = new LinkedList<Integer>();
q.offer(1);
q.offer(2);
q.offer(3);
q.add(4);
System.out.println(q);
int p;
p = q.poll();
System.out.println(p);
System.out.println(q);
p = q.remove();
System.out.println(p);
System.out.println(q);
p = q.peek();
System.out.println(p);
System.out.println(q);
}
}
결과
[1, 2, 3, 4]
1
[2, 3, 4]
2
[3, 4]
3
[3, 4]
반응형
'JAVA > 기본 문법' 카테고리의 다른 글
[JAVA] 쓰레드 (Thread), SingleThread, MultiThread 예제 (0) | 2022.04.14 |
---|---|
[JAVA] 예외처리 (Exception Handling) (0) | 2022.04.14 |
[JAVA] 컬렉션 프레임워크 - 3. List (0) | 2022.04.13 |
[JAVA] 컬렉션 프레임워크 - 2. Set (+ iterator) (0) | 2022.04.12 |
[JAVA] 컬렉션 프레임워크 - 1. Map (+ value값으로 검색) (0) | 2022.04.12 |