List<E> 인터페이스의 구현클래스
- ArrayLsit<E>
가장 많이 사용되는 List<E> 인터페이스의 구현 클래스다.
0번째부터 차례대로 저장하기, 0번째부터 차례대로 꺼내기 작업에 가장 적합하다.
내부적으로 가변길이 배열을 활용해서 객체를 저장한다.
- LinkedList<E>
중간에 객체를 삽입하거나, 중간에 저장된 객체를 삭제하는 일이 빈번한 경우에 사용하는 구현 클래스다.
----------------- ----------------- -----------------
| | | |<------ |- | | |<----- |- | | |
| | 객체 | | | | 객체 | | | | 객체 | |
| | | -|------> | | | -|-----> | | | |
----------------- ----------------- -----------------
pre next가 있다. 첫번째객체의 next에는 중간객체의 pre 주소값이 있고,
중간객체의 next에는 마지막객체의 pre의 주소값이 있다.
중간객체의 객체를 삭제하려면 첫번째 객체의 next에 마지막 객체의 pre주소값을 넣는다.
LinkedList<E>는 List<E>의 인터페이스의 구현 클래스고, Queue<E> 인터페이스의 구현 클래스다.
Queue<E>는 FIFO(First-In First-Out) 자료구조를 표현하는 인터페이스다.
LinkedList<E>의 FIFO기능을 지원하는 메소드
boolean offer(E item)
리스트의 last element로 새로운 객체를 추가한다.
E peek()
리스트의 first element를 반환한다.
E poll()
리스트의 first element를 삭제하고, 그 엘리먼트를 반환한
----------------- --------------- - -----------------
| | | | <------ | | | | <----- |- | | |
E poll() <---- | | 객체 | | | | 객체 | | | | 객체 | | <--- offer(E e)
| | | -| ------> | | | -| -----> | | | |
----------------- ----------------- ----------------
- Vector<E>
ArrayList<E>와 구현이 완전히 동일하다.
ArrayList<E>는 Thread-unsafe하고, Vector<E>는 Thread-safe하다.
- Stack<E>
FINO(First In Last-Out) 자료구조를 구현한 객체다.
Stack<E>의 고유 기능을 지원하는 메소드
E push(E item)
Stack에 새로운 객체를 저장한다.
E peek()
Stack의 맨 꼭대기에 위치한 객체를 반환한다.
E pop()
Stack의 맨 꼭대기에 위치한 객체를 삭제하고, 그 객체를 반환한다.
E push(E item) E pop()
| ∧
| |
∨ |
--------------------------------
| |
--------------------------------
| |
--------------------------------
| |
--------------------------------
'학원 정리 > 자바' 카테고리의 다른 글
Iterator<E> (0) | 2022.10.22 |
---|---|
ArrayList<E>와 Vector<E>의 주요 메소드 (0) | 2022.10.21 |
Set<E> (0) | 2022.10.19 |
Collection (0) | 2022.10.19 |
포맷팅 (1) | 2022.10.14 |
댓글