浅析Java中的LinkedList和ArrayList特点和底层

news/2024/5/24 10:14:10/ 标签: java, 开发语言

本期经验

LinkedList适合于删除和插入元素的操作,对首元素和尾元素的删除和修改插入极好,ArrayList适合于元素的修改和查询。

LinkedList

LinkedList的底层使用双向链表来写,这导致其每次查询和修改元素都必须从首元素开始以此往下找,这使得其查询和修改效率极低,但是由于是双向链表实现的,所以对于删除和插入操作即为有利。
它适合用来做队列的操作,即个人的出入队列。

ArrayList

他的底层使用动态数组实现的,因为说白了就是可变长的数组,所以他的修改和查询速度最快,但是删除和插入极慢,一旦涉及插入和删除就会涉及整体元素的移位。


http://www.ppmy.cn/news/1434564.html

相关文章

.NET 基于Socket中转WebSocket

前言 针对IOS App Proxy Server无法直连WebSocket,建立 Socket中转端。 WebSocket 端: WebSocket 端用于实现实时通信功能。 WebSocket 端通过 WebSocket 协议与中转端通信,中转端可以通过 WebSocket 或其他传输协议与 WebSocket 端建立连…

Pytorch或Tensorflow 深度学习库安装 (简易版)

Tensorflow 2.X安装 0、 pytorch 支持 conda虚拟环境 cuda 和 cudnn1、创建conda环境2、测试GPU是否可用3、在机器上安装cuda 和 cudnnCUDA 安装cudnn 安装 0、 pytorch 支持 conda虚拟环境 cuda 和 cudnn 如果只用pytorch, 只需在虚拟环境安装cuda 和 cudnn即可&am…

JavaScript 模块导出示例

JavaScript 模块导出示例说明 在 JavaScript 中,我们可以通过 export 关键字将模块中的功能导出,以供其他模块使用。导出可以是单个默认值,也可以是多个命名值。本文将分别介绍导出单个值和导出多个值的示例说明。 导出单个值 当模块中只有…

MySQL你想知道序列当前生成的值,你可以使用SHOW TABLE STATUS命令或者查询information_schema数据库

在MySQL中,如果你想知道序列当前生成的值(例如,自增主键的当前值),你可以使用SHOW TABLE STATUS命令或者查询information_schema数据库。 使用SHOW TABLE STATUS命令: 这个命令可以显示关于表的各种信息&…

AI助力科研创新与效率双提升:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

MySQL数据库精讲001——概述

MySQL数据库精讲001——概述 文章目录 MySQL数据库精讲001——概述1.1 安装1.1.1 版本1.1.2 安装一、下载二、解压三、配置1. 添加环境变量2. 初始化MySQL3. 注册MySQL服务4. 启动MySQL服务5. 修改默认账户密码 四、登录MySQL五、卸载MySQL 1.1.3 连接1.1.4 企业使用方式(了解)…

Tomcat服务器的优化经验

对于优化Tomcat服务器的经验,以下是一些常见的做法和建议: **调整内存配置:**Tomcat服务器的性能很大程度上取决于内存的配置。确保为Tomcat分配足够的堆内存和非堆内存,以避免OutOfMemoryError等内存相关的问题。可以通过编辑Tom…

实验4 数字频率计

实验目的: 1、使用铆孔U7输出一个脉冲,频率不定。 2、使用铆孔V7测量脉冲频率,并在数码管上显示。 实验内容及步骤: 设计原理 测量频率的方法有很多,按照其工作原理分为无源测量法、比较法、示波器法和计数法等。…

HOT100与剑指Offer

文章目录 前言一、70. 爬楼梯(HOT100)二、118. 杨辉三角(HOT100)总结 前言 一个本硕双非的小菜鸡,备战24年秋招,计划刷完hot100和剑指Offer的刷题计划,加油! 根据要求,每…

椭圆曲线密码学(ECC)基本介绍和总结

背景 ECC英文全称"Elliptic Curve Cryptography",其背后的密码学原理或者说安全性,是基于椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem,ECDLP)。ECC密码学被普遍认为是RSA密码系统的接…

Spring-IOC之组件扫描

版本 Spring Framework 6.0.9​ 1. 前言 通过自动扫描,Spring 会自动从扫描指定的包及其子包下的所有类,并根据类上的特定注解将该类装配到容器中,而无需在 XML 配置文件或 Java 配置类中逐一声明每一个 Bean。 支持的注解 Spring 支持一系…

001 redis高并发减库存

文章目录 释放锁加lua脚本String lockValue(唯一标识符作为锁的值)lua脚本无String lockValue(唯一标识符作为锁的值)无Lua脚本加锁的过期时间防死锁无lockValue代码 lockValue加了lockValue无lua脚本代码加了lockValue加了lua脚本…

工厂方法模式设计实验

【实验内容】 楚锋软件公司欲开发一个系统运行日志记录器(Logger)。该记录器可以通过多种途径保存系统的运行日志:例如通过文件记录或数据库记录,用户可以通过修改配置文件灵活地更换日志记录方式。在设计各类日志记录器时&#…

【ZZULIOJ】1078: a+b(多实例测试1)(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 计算AB 输入 输入第1行为一个整数n(1≤n≤10),代表测试的组数。 下面有n组测试数据,每组1行,为2个整数,为A, B。 输出 对每行输入&#xff…

【Java】文件操作(一)

文章目录 ✍一、文件的基本认识1.文件是什么?2.文本文件和二进制文件3.文件权限4.相对路径和绝对路径1.1绝对路径1.2相对路径 ✍二、文件的基本操作1.FIle的属性2.File的构造方法3.File类的方法3.1File类的获取操作3.2File类的判断操作3.3文件创建和删除3.4其他的常…

SQL超详细解析

目录 SQL通用语法 SQL分类 DDL-数据库定义语言 1、DDL-数据库操作-查询 查询所有数据库 查询当前数据库 2、DDL-数据库操作-创建 创建数据库 3、DDL-数据库操作-删除 4、DDL-数据库操作-使用 5、DDL-表操作-查询: 查看当前数据库的所有表名称 查询当前表…

C++的初步知识——命名空间,缺省参数,重载函数

C 首先写一段代码&#xff1a; #include <stdio.h>int main() {printf("Hello world\n");return 0; }这段C语言代码在cpp文件中仍可运行。我们了解C是兼容C语言的&#xff0c;C的关键字中就包含了C语言的关键字和自身的关键字。关于关键字&#xff0c;我们简…

问题:react函数中的state是上一次的值

场景 有一个聊天输入框组件&#xff0c;输入框上面有表情包组件。 通过redux创建了store&#xff0c;存储一个message的状态&#xff0c;用于表情包和输入框共享状态。 输入框通过设置value和onClick做了一个简单双向绑定&#xff0c;其中value的值为store里的message。 impor…

在android 源代码中 使用gradlew 编译android 模块

gradle 编译子模块 在Gradle中编译子模块通常涉及到以下步骤&#xff1a; 1、确保你的项目结构是模块化的&#xff0c;每个子模块都是一个独立的目录2、在项目的根目录下的setting.gradle文件中&#xff0c;包含需要编译的子模块。例如&#xff1a;include ‘:submodule-name…

ctfshow web入门 web180--web185

web180 import requests import recom re.compile("admin") def repisTrue(char):url f"http://自己环境的网址/api/?id1%27and%27{char}%27%27{char}&page1&limit10"res requests.get(url)w com.search(res.text)if w is not None:return T…