목차
- 스택(Stack) 클래스 란?
- 스택의 메소드
- 큐(Queue) 인터페이스 란?
- 큐의 메소드
- 예제
1. 스택(Stack) 클래스 란?
- LIFO구조 (Last In First Out) : 마지막에 저장된 것을 제일 먼저 꺼내게 된다
- 앞 부터 추가, 뒤 부터 삭제된다는 점에서 '배열'과 같다
1) 스택의 메소드
- 객체 생성
- Stack st = new Stack(); // 스택은 클래스이기에 객체 생성 가능
- Stack<Integer> st = new Stack<>(); // Integer 타입 스택 생성
- Stack<String> st = new Stack<>(); // String 타입 스택 생성
- 추가
- Object push(Object item) : Stack에 객체(item)을 저장한다
- 삭제
- Object pop() : Stack의 맨 위에 저장된 객체를 꺼낸다 (비었을 땐 EmptyStackException 발생)
- 기타
- boolean empty() : Stack이 비었는지 알려준다
- Object peek() : Stack의 맨 위에 저장된 객체 반환 (비었을 땐 EmptyStackException 발생)
- int search(Object o) : Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환 (못찾으면 -1 반환, 배열과 달리 0이 아닌 1부터 시작)
2. 큐(Queue) 인터페이스 란?
- FIFO구조 (First In First Out) : 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다
- 앞 부터 추가, 앞 부터 삭제된다는 점에서 'LinkedList'와 같다
1) 큐의 메소드
- 객체 생성
- Queue q = new LinkedList(); // 객체 생성 (LinkedList가 Queue를 구현한 클래스)
- 추가
- boolean add(Object o) : 지정된 객체를 Queue에 추가 (성공 시 true, 저장공간이 부족하면 IllegalStateException 발생) / 예외발생
- boolean offer(Object o) : Queue에 객체를 저장 (성공 시 true, 실패 시 false) / 예외발생 안함
- 삭제
- Object remove() : Queue에서 객체를 꺼내서 반환 (비었으면 NoSuchElementException 발생) / 예외 발생
- Object poll() : Queue에서 객체를 꺼내서 반환 (비었으면 null 반환) / 예외발생 안함
- 기타
- Object element() : 삭제없이 요소를 읽어온다 (비었으면 NoSuchElementException 발생) / 예외 발생
- Object peek() : 삭제없이 요소를 읽어온다 (비었으면 null 반환) / 예외발생 안함
3. 예제
'IT 언어 > Java' 카테고리의 다른 글
[Java] Comparable 과 Comparator (객체 정렬) (0) | 2024.02.14 |
---|---|
[Java] Arrays 클래스 (0) | 2024.02.14 |
[Java] Iterator 인터페이스 (ListIterator, Enumeration) (0) | 2024.02.12 |
[Java] Map 인터페이스 (HashMap 과 TreeMap) (0) | 2024.02.12 |
[Java] Set 인터페이스 (HashSet 과 TreeSet) (0) | 2024.02.12 |