List与Set、数组与ArrayList、ArrayList与LinkedList的区别
List 与 Set 的区别:
| 项 | List | Set |
| 重复 | 允许重复的对象(多个null也可以) | 不允许重复的对象(null也只能有一个) |
| 有序性 | 有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 | 有序和无序都有。 HashSet:无法保证每个元素的存储顺序。 LinkedHashSet:按插入顺序存放。 |
数组与 ArrayList 的区别:
相同点:
1. 都具有索引(index):可以通过 index 来直接获取和修改任意项;
2. 它们所创建的对象都放在堆中;
3. 都能够对自身进行枚举(因为都实现了 IEnumerable 接口);
不同点:
| 项 | 数组(Array) | ArrayList |
| 数据类型 | 可以是基本类型或对象类型。 | 只能是对象类型。 |
| 大小 | 大小是固定的,Array对象的初始化必须指定大小 | 大小是动态的 |
| 数据存放 | 连续存放(在内存中,数组的元素是按照顺序依次存储在一块连续的内存空间中的。这种连续存储的方式使得数组在随机访问时效率很高,因为可以通过计算偏移量直接定位到元素的内存位置。例如,对于一个int类型的数组,每个元素占用 4 个字节,如果知道数组的起始地址和元素的索引,就可以通过简单的乘法和加法运算来计算出元素的内存地址。) | 对象的引用是连续的,但对象本身在内存中的位置不一定连续。(ArrayList 内部维护的是一个对象引用数组,这些引用在内存中是连续存放的。但是,这些引用所指向的实际对象(如String对象或其他自定义对象)本身在内存中的位置是由 Java 虚拟机的内存管理系统根据内存的使用情况动态分配的,不一定是连续的。这种存储方式在插入和删除元素时相对灵活,但在一定程度上可能会影响访问效率。) |
| 插入与删除 | 不能够添加和删除其中的项 | 可以在任意位置插入和删除项。 |
| 访问 效率 | 高 | 低 |
ArrayList 与 LinkedList 的区别:
相同点:
1. 都是线程不安全的;
2. 都是按照存入的顺序取出;
不同点:
| 项 | ArrayList | LinkedList |
| 实现方式 | 基于数组。 | 基于链表。 |
| 随机访问 | 支持随机访问。(实现了RandomAccess 接口) | 不支持随机访问。 |
| 插入效率 | 插入效率比较低(需要扩容时效率会变低)。 | 插入效率比较高(删除不一定高)。 |
| 使用场景 | 随机访问的场景。 | 插入很频繁的场景 用作:栈、队列或双向队列 |
相关文章:
List与Set、数组与ArrayList、ArrayList与LinkedList的区别
List 与 Set 的区别: 项ListSet重复允许重复的对象(多个null也可以)不允许重复的对象(null也只能有一个)有序性有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 有序和无序都有。 HashSet:无…...
如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍
文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…...
Linux下mysql环境的搭建
1.mysql的下载 去MySQL官网下载mysql的linux压缩包 MySQL :: Download MySQL Community Server 如果下载慢请到网盘中自行下载 通过网盘分享的文件:mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 链接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…...
视觉语言模型 Qwen2-VL
视觉语言模型 Qwen2-VL flyfish from PIL import Image import requests import torch from torchvision import io from typing import Dict from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor from modelscope import snapshot_dow…...
浅谈新能源汽车感应钥匙一键启动的步骤和特点
随着汽车智能化技术的发展,无钥匙启动系统还可以与其他智能系统进行集成,如智能车载系统、远程控制系统等。这使得车主可以通过智能手机等智能设备远程控制车辆的启动、解锁、上锁等操作,进一步提升了使用的便捷性和智能化水平。新能源汽车…...
鸿蒙ArkTS语言基础语法详解
文章目录 鸿蒙ArkTS语言基础语法详解一、引言二、ArkTS语言概述1. ArkTS语言特点2. TypeScript基础语法2.1 类型注解2.2 接口2.3 泛型2.4 类的继承2.5 类的访问修饰符 三、ArkTS的基本组成3.1 装饰器3.2 UI描述3.3 自定义组件3.4 系统组件3.5 属性方法和事件方法 四、自定义组件…...
H5游戏出海如何获得更多增长机会?
海外H5小游戏的崛起给了国内众多中小厂商出海发展的机会,开发者如何在海外市场获得更多的增长机会?#APP出海# H5游戏如何在海外获得核心用户? HTML5游戏的开发与运营者们首先可以利用量多质高的HTML5游戏,维持海外用户粘性&…...
Cmake+基础命令
一、版本要求: 检查 cmake 版本号的最低要求,不满足条件时报错。 cmake_minimum_required(VERSION <version>)参数: version:最低要求的版本号 例子: # 最低要求安装3.21版本的cmake cmake_minimum_required…...
python数据分析之爬虫基础:requests详解
1、requests基本使用 1.1、requests介绍 requests是python中一个常用于发送HTTP请求的第三方库,它极大地简化了web服务交互的过程。它是唯一的一个非转基因的python HTTP库,人类可以安全享用。 1.2、requests库的安装 pip install -i https://pypi.tu…...
PHP期末复习(通过30道填空题梳理知识点)
一、基本语法 PHP的开始标记是: <?php<?php 是PHP脚本的开始标签,所有PHP代码必须在这个标签内书写。 PHP文件的结束标记是: ?>?> 是PHP脚本的结束标签,在大多数PHP文件中,通常可以省略结束标记。 定…...
PostgreSQL 安装部署系列:使用YUM 方式在Centos 7.9 安装指定 PostgreSQL -15版本数据库
一、前言 千里之行始于足下,想学习一门数据库,首先要从安装部署开始,先拥有一套属于自己的学习测试库。为了更好的学习该数据库,可以选择一个在企业界使用率比较普及的操作系统,选择稳定版本的操作系统;如果…...
知识图谱8:深度学习各种小模型
1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具,适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言…...
为什么 JavaScript 中的 `new` 运算符报错?
在 JavaScript 中,new 运算符通常用于创建一个新对象并调用构造函数来初始化对象。然而,new 运算符可能会引发一些错误,通常是由于以下原因导致的: 构造函数没有正确的定义: 如果使用 new 运算符调用的函数没有正确地定…...
Tomcat,javaweb, servlet , springBoot
在server.xml里配置服务器 <scope>provided</scope>打包的时候,这个jar包不会被打进去,因为tomcat已将封装了这个jar包,没必要要这个...
使用Kimi开发自己的问答应用
概述 Kimi是大家常用的一个人工智能助手,本文使用Kimi开发文档,以node作为后端,开发与一个问答系统 实现效果 Kimi简介 Kimi是由Moonshot AI开发的人工智能助手,擅长中文和英文对话。目标是帮助用户解决问题、提供信息和执行任…...
TypeScript进阶
Typescript进阶 基础知识 JavaScript 的核心特点就是灵活,但随着项目规模的增大,灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数,这样就充满了不确定性。而且这些不确定性可能需要在代码运行…...
jenkins邮件的配置详解
Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…...
小皮面板(PHPSTUDY)配置多个域名或IP
问题描述 小皮面板默认采用nginx的静态部署,按照使用nginx的习惯只需要额外添加一个server即可,但是会发现直接往配置文件里添加新的server是不生效的,小皮的官网论坛几乎已经停止维护,因此资料较少,原本也没有仔细使…...
【大语言模型】LangChain LCEL 表达式语言
【大语言模型】LangChain LCEL 表达式语言 一、简介二、LCEL的优势三、LCEL 的基本使用1、Runnable 对象 四、实战实例 一、简介 LangChain LCEL 的全称为 LangChain Expression Language 即可直译为 LangChain 表达式。 为了构造更复杂的 LLM 应用并且更为简便快捷的构造 LLM…...
Leetcode 3382. Maximum Area Rectangle With Point Constraints II
Leetcode 3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路2. 代码实现 题目链接:3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路 这一题是题目3380. Maximum Area Rectangle With Point Constraints I的进阶版&#…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
