为什么 Java 的 LinkedList 的双链表实现不会链接后面元素
阿神
阿神 2017-04-18 10:48:47
0
2
882
  1. JDK7中 LinkedList private 方法 private void linkFirst(E e)在新添加元素时链表不会断裂?

代码来源于 JDK7

 private void linkFirst(E e) {
        final Node<E> f = first;
        final Node<E> newNode = new Node<>(null, e, f);
        first = newNode;
        if (f == null)
            last = newNode;
        else
            f.prev = newNode;
           // 此处没有执行 newNode.next = f; newNode.next 不会链接后面的元素
        size++;
        modCount++;
    }
阿神
阿神

闭关修行中......

모든 응답(2)
小葫芦

으아악 으아악

大家讲道理

링크가 왜 깨졌나요?
f는 원본을 먼저 가리키고 새 newNode를 첫 번째로 설정합니다.
이때, 원래 연결 리스트가 비어 있으면 마지막도 먼저인 것으로 판단됩니다.
비어 있지 않으면 의 이전 항목이 첫 번째 노드를 가리킵니다.


링크가 깨졌다고 생각하시는 이유는 첫 번째의 다음 포인트가 f를 가리키는 것을 보지 못했기 때문인 것 같습니다. 어, 다음은 Node
final Node newNode = new Nodeprivate static class Node에 전달되었습니다. 으아아아

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!