java 프로그래밍 -- LinkedList 상세 설명

16137 단어 필기
하나.LinkedList의 원본 분석 계승 관계 소개
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable

Linked List는 Abstract Sequential List를 계승하고 get 등 방법을 실현한 Linked List는 Dequed 인터페이스를 실현했으며, 이중 대기열로 Linked List를 사용하여 Cloneable 인터페이스를 실현하고 인터페이스 정의를 다시 쓰는 clone () 방법을 사용할 수 있으며, clone () 복제 체인 테이블 Linked List를 사용하여java를 실현할 수 있다.io.Serializable 인터페이스는 LinkedList에서 시리얼화된 속성 소개를 지원합니다.
transient int size = 0;//       
transient int size = 0;//     
transient int size = 0;//     

구조 함수 소개 중 구조 함수에 대한 데이터 추가 조작
public LinkedList() {
    }
     public LinkedList(Collection<? extends E> c) {
        this();
        addAll(c);
    }

내부 클래스 LinkedList의 데이터를 저장하는 캐리어입니다.노드 노드에는 세 가지 속성이 있습니다: 선행 노드, 후행 노드, 노드 값
private static class Node<E> {
        E item;
        Node<E> next;
        Node<E> prev;

        Node(Node<E> prev, E element, Node<E> next) {
            this.item = element;
            this.next = next;
            this.prev = prev;
        }
    }

방법 소개dd (E e) 이 방법은 목록의 끝에 요소를 추가하고 성공 여부를 되돌려줍니다.
 public boolean add(E e) {
        linkLast(e);
        return true;
    }

remove(Object o) 이 방법은 주어진 요소 o를 삭제하고 목록에서 처음 찾은 o 요소를 삭제합니다
public boolean remove(Object o) {
        if (o == null) {
            for (Node<E> x = first; x != null; x = x.next) {
                if (x.item == null) {
                    unlink(x);
                    return true;
                }
            }
        } else {
            for (Node<E> x = first; x != null; x = x.next) {
                if (o.equals(x.item)) {
                    unlink(x);
                    return true;
                }
            }
        }
        return false;
    }

addFist(E) 목록 첫 번째 위치에 요소 추가
 public void addFirst(E e) {
        linkFirst(e);
    }

addLast(E e) 목록 끝에 요소 추가
public void addLast(E e) {
        linkLast(e);
    }

removeFist () 는 첫 번째 요소를 삭제합니다. 목록이 비어 있으면 NoSuchElementException 이상을 던지고 첫 번째 요소의 값을 되돌려줍니다.
 public E removeFirst() {
        final Node<E> f = first;
        if (f == null)
            throw new NoSuchElementException();
        return unlinkFirst(f);
    }

removeLast () 는 마지막 요소를 삭제합니다. 목록이 비어 있으면 NoSuchElementException의 이상을 던지고 마지막 요소의 값을 되돌려줍니다.
 public E removeLast() {
        final Node<E> l = last;
        if (l == null)
            throw new NoSuchElementException();
        return unlinkLast(l);
    }


getFirst () 이 방법은 첫 번째 요소를 되돌려주는 데 사용되며, 목록에 없으면 NoSuchElementException 이상을 던집니다
 public E getFirst() {
        final Node<E> f = first;
        if (f == null)
            throw new NoSuchElementException();
        return f.item;
    }

getLast () 이 방법은 목록의 가장 충분한 요소를 되돌려줍니다. 목록에 NoSuchElementException의 이상이 없습니다.
public E getLast() {
        final Node<E> l = last;
        if (l == null)
            throw new NoSuchElementException();
        return l.item;
    }

둘째 Array List와 Linked List의 연결 Array List와 Linked List는 모두 List 인터페이스를 실현한 용기로 일련의 대상 인용을 저장하는데 사용되며 그들은 원소를 추가 삭제하고 수정할 수 있다.차이점: 1.ArrayList는 동적 그룹을 바탕으로 하는 데이터 구조를 실현했고LinkedList는 체인 테이블 구조를 바탕으로 한다.랜덤으로 접근하는 get과 set 방법에 대해 Array List는 Linked List 때문이고, Linked List는 포인터를 이동해야 하기 때문이다.Array List가 그룹을 이동해야 하기 때문에, 추가 작업과 삭제 작업dd와removeLinkedList가 비교적 우세합니다.

좋은 웹페이지 즐겨찾기