스택 (stack)
LIFO (Last In First Out) 구조 : 마지막에 저장된 것을 제일 먼저 꺼냄
- 저장 : push / 추출 : pop
- 밑이 막힌 상자
- 배열로 만드는 게 유리
- 활용 : 수식계산, 수식 괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로
큐 (queue)
FIFO (First In First Out) 구조 : 제일 먼저 저장한 것을 제일 먼저 꺼냄
- 저장 : offer / 추출 : poll
- 양끝이 뚫린 상자
- 링크드 리스트로 만드는 게 유리
- 인터페이스 ➔ 객체 생성 X
- 활용 : 최근 사용 문서, 인쇄작업 대기목록, 버퍼
스택과 큐의 메서드
인터페이스를 구현한 클래스 찾기
< 예제 1 >
< 예제 2 >
< 예제 3 >
Iterator / Enumeration / Listlterator
- 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것
- 컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용
Iterator
컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 (new)
메서드 | 설명 |
boolean hasNext() | 읽어 올 요소가 남았는지? 있으면 true, 없으면 false |
Object next() | 다음 요소 읽어옴. next() 호출 전에 hashNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전 |
Enumeration
Iterator의 구버전 (old)
메서드 | 설명 |
boolean hasMoreElements() | 읽어 올 요소가 남았는지? 있으면 true, 없으면 false |
Object nextElement() | 다음 요소 읽어옴. next() 호출 전에 hashNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전 |
ListIterator
Iterator의 접근성을 향상시킨 것 (단방향 ➔ 양방향)
< 예제 >
Map과 Iterator
Map에는 iterator()가 없음 ➔ keySet(), entrySet(), value() 호출
Map map = new HashMap();
...
Iterator it = map.entrySet().iterator();
// 위의 한줄을 두줄로 풀면
// Set eSet = map.entrySet();
// Iterator it = eSet.iterator();
'JAVA > 자바의 정석' 카테고리의 다른 글
[자바의 정석 - 기초편] 11. (5) HashSet / TreeSet (0) | 2023.12.12 |
---|---|
[자바의 정석 - 기초편] 11. (4) Arrays / Comparator / Comparable (0) | 2023.12.11 |
[자바의 정석 - 기초편] 11. (2) ArrayList / java API 소스 보기 / LinkedList (0) | 2023.12.07 |
[자바의 정석 - 기초편] 11. (1) 컬렉션 프레임웍 ( List / Set / Map ) (0) | 2023.12.07 |
[자바의 정석 - 기초편] 10. (3) 형식화 클래스 ( DecimalFormat / SimpleDateFormat ) (0) | 2023.12.06 |