찾다
Javajava지도 시간ArrayList에 있는 몇 가지 일반적인 메서드의 소스 코드를 공유합니다.

ㅋㅋㅋ

LinkedList의 일반적인 방법에 대한 간략한 분석입니다.  LinkedList는 연결리스트를 기반으로 구현되었습니다. 즉, 느린 랜덤 액세스와 빠른 삽입 및 삭제 속도 등 연결리스트의 장점과 단점을 모두 가지고 있습니다. Linked List이기 때문에 노드 데이터 구조를 갖고 있으며, 마지막에 하나만 추가하면 되기 때문에 용량에는 문제가 없습니다.

//LinkedList$Nodeprivate 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;
    }
}</e></e></e></e></e>

 기본적으로 매개변수가 없는 첫 번째 생성자는 빈 연결 리스트를 구성합니다.

//1.LinkedList,默认构造方法public LinkedList() {
}
 두 번째 생성자는 컬렉션을 매개 변수로 전달할 수 있으며 컬렉션의 요소는 LinkedList의 하위 클래스여야 합니다.

//2.LinkedList,能将一个集合作为参数的构造方法public LinkedList(Collection extends E> c) {this();
    addAll(c);
}

 두 구성 방법 모두 비교적 간단합니다. 다음으로 요소의 삽입과 삭제를 살펴보겠습니다.

public boolean add(E e) {
    linkLast(e);    //将元素添加到链表尾部return true;
}
//LinkedList#linkLastvoid linkLast(E e) {final Node<e> l = last;    //链表尾指针引用暂存final Node<e> newNode = new Node(l, e, null);    //构造新节点last = newNode;    //将链表的尾指针指向新节点if (l == null)    //此时为第一次插入元素first = newNode;elsel.next = newNode;    
    size++;    //链表数据总数+1modCount++;    //modCount变量在《有关ArrayList常用方法的源码解析》提到过,增删都会+1,防止一个线程在用迭代器遍历的时候,另一个线程在对其进行修改。}</e></e>

"데이터 구조"를 공부한 학생들은 연결리스트의 연산이 낯설지 않을 것이라고 믿습니다. 지정된 위치의 요소를 삭제하는
remove(int)

메소드를 살펴보겠습니다. .

//LinkedList#removepublic E remove(int index) {
    checkElementIndex(index);    //检查是否越界 index >= 0 && index <div class="cnblogs_code"></div><p></p><pre class="brush:php;toolbar:false">//LinkedList#node,根据索引位置返回Node节点Node<e> node(int index) {if (index > 1)) {    //size >> 1 = size / 2,如果索引位于链表前半部分,则移动fisrt头指针进行查找Node<e> x = first;for (int i = 0; i  x = last;for (int i = size - 1; i > index; i--)
            x = x.prev;return x;
    }
}</e></e>
index

위치에서 Node를 찾은 후

unlink

메소드를 호출하여 노드
를 제거합니다.

//LinkedList#unlink,一看即懂E unlink(Node<e> x) {// assert x != null;final E element = x.item;final Node<e> next = x.next;final Node<e> prev = x.prev;if (prev == null) {
        first = next;
    } else {
        prev.next = next;
        x.prev = null;
    }if (next == null) {
        last = prev;
    } else {
        next.prev = prev;
        x.next = null;
    }

    x.item = null;
    size--;
    modCount++;return element;
}</e></e></e>
LinkedList

ArrayList의 장단점을 코드에서 확인할 수 있습니다. 단순 연결리스트 데이터 구조만 포함되어 있으므로 다른 메소드는 파싱되지 않습니다.

위 내용은 ArrayList에 있는 몇 가지 일반적인 메서드의 소스 코드를 공유합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Python在软件源码保护中的应用实践Python在软件源码保护中的应用实践Jun 29, 2023 am 11:20 AM

Python语言作为一种高级编程语言,具有简单易学、易读易写等特点,在软件开发领域中得到了广泛的应用。然而,由于Python的开源特性,源代码很容易被他人轻易获取,这就给软件源码保护带来了一些挑战。因此,在实际应用中,我们常常需要采取一些方法来保护Python源代码,确保其安全性。在软件源码保护中,有多种针对Python的应用实践可供选择。下面将介绍几种常见

使用LinkedList类的removeLast()方法删除链表中的最后一个元素使用LinkedList类的removeLast()方法删除链表中的最后一个元素Jul 24, 2023 pm 05:13 PM

使用LinkedList类的removeLast()方法删除链表中的最后一个元素LinkedList是Java集合框架中常见的一种数据结构,它以双向链表的形式存储元素。通过LinkedList类提供的方法,我们可以方便地对链表进行操作,例如添加、删除和修改元素。在某些场景下,我们可能需要删除链表中的最后一个元素。LinkedList类提供了removeLas

idea如何查看tomcat的源码idea如何查看tomcat的源码Jan 25, 2024 pm 02:01 PM

idea查看tomcat源码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看Tomcat源代码;4、理解Tomcat的工作原理;5、注意事项;6、持续学习和更新;7、使用工具和插件;8、参与社区和贡献。详细介绍:1、下载Tomcat源代码,可以从Apache Tomcat的官方网站上下载源代码包,通常这些源代码包是以ZIP或TAR格式等等。

PHP代码在浏览器中如何显示源码而不被解释执行?PHP代码在浏览器中如何显示源码而不被解释执行?Mar 11, 2024 am 10:54 AM

PHP代码在浏览器中如何显示源码而不被解释执行?PHP是一种服务器端脚本语言,通常用于开发动态网页。当PHP文件在服务器上被请求时,服务器会解释执行其中的PHP代码,并将最终的HTML内容发送到浏览器以供显示。然而,有时我们希望在浏览器中直接展示PHP文件的源代码,而不是被执行。本文将介绍如何在浏览器中显示PHP代码的源码,而不被解释执行。在PHP中,可以使

vue能显示源码吗vue能显示源码吗Jan 05, 2023 pm 03:17 PM

vue能显示源码,vue查看看源码的方法是:1、通过“git clone https://github.com/vuejs/vue.git”获取vue;2、通过“npm i”安装依赖;3、通过“npm i -g rollup”安装rollup;4、修改dev脚本;5、调试源码即可。

网站在线看源码网站在线看源码Jan 10, 2024 pm 03:31 PM

可以使用浏览器的开发者工具来查看网站的源代码,在Google Chrome浏览器中:1、打开 Chrome 浏览器,访问要查看源代码的网站;2、右键单击网页上的任何位置,然后选择“检查”或按下快捷键 Ctrl + Shift + I打开开发者工具;3、在开发者工具的顶部菜单栏中,选择“Elements”选项卡;4、看到网站的 HTML 和 CSS 代码即可。

golang框架源码学习与应用全面指南golang框架源码学习与应用全面指南Jun 01, 2024 pm 10:31 PM

通过理解Golang框架源码,开发者可以掌握语言精髓和扩展框架功能。首先,获取源码并熟悉其目录结构。其次,阅读代码、跟踪执行流和理解依赖关系。实战案例展示了如何应用这些知识:创建自定义中间件并扩展路由系统。最佳实践包括分步学习、避免盲目复制粘贴、利用工具和参考在线资源。

PHP源码错误:解决index报错问题PHP源码错误:解决index报错问题Mar 10, 2024 am 11:12 AM

PHP源码错误:解决index报错问题,需要具体代码示例随着互联网的快速发展,开发人员在编写网站和应用程序时经常会遇到各种各样的问题。其中,PHP作为一种流行的服务器端脚本语言,其源码错误是开发者们经常遇到的一个问题之一。有时候,当我们尝试打开一个网站的index页面时,会出现各种不同的错误信息,例如"InternalServerError"、"Unde

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구