본문 바로가기
학원 정리/자바

List<E>

by csatlemin 2022. 10. 20.

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

댓글