자바 집합 데이터 구조 집합

1520 단어
세트
HashSet 은 사실 HashMap 의 데이터 구 조 를 사 용 했 습 니 다.HashMap 의 데이터 구 조 는 배열 + 링크 형식 입 니 다.
HashMap 데이터 구조의 구체 적 인 실현 과 확대 에 대해 블 로 그 를 참고 하 십시오.https://www.jianshu.com/p/8b372f3a195d/
TreeSet 은 TreeMap 의 데이터 구 조 를 사 용 했 습 니 다. TreeMap 의 본질은 빨 간 검 은 나무 이 고 TreeMap 류 에는 뿌리 노드 가 존재 합 니 다.
private transient Entry root;

둘째, 리스트
Array List 내 부 는 배열 입 니 다:
transient Object[] elementData;
public boolean add(E e) {
        ensureCapacityInternal(size + 1);  // Increments modCount!!
        elementData[size++] = e;
        return true;
 }

링크 드 리스트 내 부 는 링크 입 니 다:
 transient Node first;

    /**
     * Pointer to last node.
     * Invariant: (first == null && last == null) ||
     *            (last.next == null && last.item != null)
     */
transient Node last;
public boolean add(E e) {
        linkLast(e);
        return true;
}
 void linkLast(E e) {
        final Node l = last;
        final Node newNode = new Node<>(l, e, null);
        last = newNode;
        if (l == null)
            first = newNode;
        else
            l.next = newNode;
        size++;
        modCount++;
}

링크 Last 는 링크 끝 에 노드 를 추가 하고 끝 노드 의 next 지침 을 바 꾸 어 새 노드 를 가리킨다.
지도
HashMap 의 데이터 구 조 는 배열 + 링크 형식 입 니 다.
트 리 맵 의 본질은 붉 은 검 은 나무 다.
링크 드 HashMap 의 데이터 구 조 는 HashMap + 링크 입 니 다. HashMap 의 데이터 구조 로 저장 할 뿐만 아니 라 각 노드 에 before 와 after 유지보수 삽입 순 서 를 추가 합 니 다.

좋은 웹페이지 즐겨찾기