Java重修笔记 第四十二天 LinkedList 类、ArrayList 和 LinkedList 比较

embedded/2024/9/23 1:44:37/
  • LinkedList 类

1. LinkedList 类底层是一个双向链表

2. LinkedList 类中有两个属性 first 和 last ,他们分别指向首节点和尾节点

3. 每个结点(LinkedList 的内部类 Node 对象)中有三个属性,prev 指向前一个结点、next 指向后一个结点、item 存储元素的值,来实现双向链表

4. 双向链表只需要操作 prev 和 next 的指向就可以完成添加的删除操作,不存在数组扩容和数据前移的情况,所以 LinkedList 添加的删除的效率比较高

  • LinkedList 类常用方法

1. public boolean add(E e)

        将指定元素插入到链表的末尾

2. public void add(int index, E element)

        在指定位置插入

3. public E remove()

        删除链表的第一个元素

4. public E remove(int index)

        删除链表中指定位置的元素

5. public boolean remove(Object o)

        删除链表中第一次出现的该元素

6. public E set(int index, E element)

        替换指定位置的元素

7. public E get(int index)

        返回指定元素

8. public int indexOf(Object o)

        返回该元素的索引,找不到返回-1

9. public int size()

        返回元素个数

  • ArrayList 和 LinkedList 比较

1. ArrayList 底层是可变数组

        修改和查询的效率高,因为 ArrayList 可以通过索引直接定位

        增加和删除的效率低,因为 ArrayList 要进行扩容

2. LinkedList 底层是双向链表

        修改和查询的效率低,因为 LinkedList 要从头结点一个一个遍历才能找到

        增加和删除的效率高,因为 LinkedList 只需要修改指针指向即可,不存在扩容

  • 如何选择 ArrayList 和 LinkedList 

1. 查询和修改的操作多就用 ArrayList , 修改和删除的操作多就用 LinkedList 

2. 实际开发中,80%以上都用的是 ArrayList 

3.  ArrayList 和 LinkedList 都是线程不安全的


http://www.ppmy.cn/embedded/103160.html

相关文章

SSH和Git的基本知识

教程 PPT-lec2 - 2023秋冬实用技能拾遗 (tonycrane.cc) B站视频 SSH安全外壳协议 概念 SSH 全称 secure shell,安全外壳协议(安全的shell),是一个计算机网络协议(默认端口号为22)。通过ssh协议可以在客…

rust版本升级

看起来你在尝试更新 Rust 工具链时遇到了一些问题。具体来说,rustup 似乎在更新现有的 1.76.0 版本,而不是安装新的 1.80.0 版本。让我们一步一步来解决这个问题。 1. 确认当前工具链 首先,确认你当前的工具链版本: rustup sho…

【香橙派系列教程】(二十一) 基于OrangePi Zero2的系统移植— 交叉编译工具链配置

【二十一】基于OrangePi Zero2的系统移植— 交叉编译工具链配置 文章目录 【二十一】基于OrangePi Zero2的系统移植— 交叉编译工具链配置1.关于编译2.本地编译3.交叉编译 1.关于编译 编译是指将源代码文件(如C/C文件)经过预处理、编译、汇编和链接等步…

redis的RDB快照配置详解

Redis 的 RDB(Redis Database Backup)快照是一种数据持久化方式,它可以在指定时间间隔内将内存中的数据快照保存到磁盘。这样,即使Redis服务器意外宕机或重启,数据也能从最近的快照中恢复。RDB快照的配置主要涉及以下几…

力扣题/回溯/组合总和

组合总和 力扣原题 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限…

Netlify 为静态站点部署 Waline 评论系统

目录 1 准备工作2 简介2.1 Netlify2.2 Waline2.3 Leancloud 3 开始搭建3.1 Fork 仓库3.2 设置 Leancloud3.3 部署 Netlify3.4 查看评论系统 从我建成个人网站以来,一个月了,竟然还没配置过评论系统,一直用的别人的 awa。 那么今天就稍微研究…

服务器多核多线程跟高主频的有何区别?

在服务器领域,多核多线程与高主频是两个重要的性能指标,它们各自在提升服务器性能上扮演着不同的角色。了解这两者的区别,对于选择合适的服务器以满足特定业务需求至关重要。 一、多核多线程的优势 多核多线程服务器指的是拥有多个处理器核心…

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式(client credentials)授权模式。 授权模式流程说明​ 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…