1. 스택(Stack)
- LIFO(Last In First Out) 구조로 마지막에 저장(push)된 것을 제일 먼저 꺼냄(pop)
- 순차적으로 저장하는 스택은 배열(ArrayList)로 저장하는 것이 효율적
- 스택(Stack) class의 메서드
메서드 | 설명 |
boolean empty() | 스택이 비어있는지 알려줌 |
Object peek() | - 스택의 맨 위에 저장된 객체 반환 - pop()과 달리 스택에서 객체를 꺼내지는 않음(비었을 때는 EmptyStackException 발생) |
Object pop() | 스택의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStackException 발생) |
Object push(Object item) | 스택에 객체(item)저장 |
int search(Object o) | - 스택에서 객체(o)를 찾아 그 위치를 반환 - 못찾으면 -1 반환(배열과 달리 위치는 0이 아닌 1부터 시작) |
- 스택 활용 예: 수식 계산, 수식 괄호 검사, 워드프로세서의 undo/redo, 웹 브라우저의 뒤로/앞으로
2. 큐(Queue)
- FIFO(First In First Out)구조로 제일 먼저 저장(offer)한 것을 제일 먼저 꺼냄(poll)
- 추가/삭제 시 자리 이동이 없는 연결 리스트(Linked List)로 저장하는 것이 효율적
- 큐(Queue) 인터페이스 메서드
메서드 | 설명 |
boolean add(Object o) | - 지정된 객체를 큐에 추가 - 성공하면 true 반환 - 저장 공간이 부족한 경우 IllegalStateException 발생 |
Object romove() | 큐에서 객체를 꺼낸 반환 비어있으면 NoSuchElementException 발생 |
Object element() | - 삭제없이 요소를 읽어옴 - peek과 달리 큐가 비었을 때 NoSouchElementException 발생 |
boolean offer(Object o) | - 큐에 객체를 저장 - 성공 시 true, 실패 시 false 반환 |
Object poll() | - 큐에서 객체를 꺼내서 반환 - 비어있으면 null 반환 |
Object peek() | - 삭제없이 요소를 읽어옴 - 큐가 비어있으면 null 반환 |
- 큐를 사용하는 방법
1) 직접 구현하기
2) 큐 인터페이스를 구현한 클래스를 상속받아 사용하기
- 큐 활용 예: 최근 사용 문서, 인쇄 작업 대기 목록, 버퍼
'Java' 카테고리의 다른 글
Java Arrays 클래스(Arrays Class) (0) | 2023.01.03 |
---|---|
Java Iterator, ListIterator, Enumeration 인터페이스 (0) | 2023.01.03 |
Java 컬렉션 프레임워크(collections framework) (0) | 2023.01.02 |
Java 형식화 클래스 DecimalFormat, SimpleDateFormat (0) | 2022.12.30 |
Java 날짜와 시간, Calendar 클래스 (0) | 2022.12.30 |