当前位置: 首页 > news >正文

Java——ArrayList集合

 ArrayList:基于动态数组实现,支持随机访问,适合频繁的随机访问操作,但在插入和删除元素时性能较差。

技术层面介绍

  • 所属类库ArrayList 位于 java.util 包中,它实现了 List 接口,因此具备 List 接口定义的各种功能,比如有序存储元素、允许元素重复等。
  • 数据结构:它基于动态数组实现。这意味着在内存中,ArrayList 会分配一块连续的空间来存储元素。当元素数量超过当前数组的容量时,ArrayList 会自动创建一个更大的数组,并将原数组中的元素复制到新数组中,这个过程称为扩容。
  • 特点
    • 有序性:元素会按照插入的顺序进行存储,你可以根据元素的索引来访问它们。
    • 可重复性:允许存储重复的元素,即同一个元素可以多次添加到 ArrayList 中。
    • 随机访问高效:由于采用数组存储,通过索引访问元素的速度非常快,时间复杂度为 (O(1))。
    • 插入和删除效率低:在中间或开头插入、删除元素时,需要移动后面的元素,时间复杂度为 O(n)。

方法:

①.add(Object element) 向列表的尾部添加指定的元素。

②.size() 返回列表中的元素个数。

③.get(int index) 返回列表中指定位置的元素,index从0开始。

ArrayList<String> list = new ArrayList<String>(); //<String>泛型表示集合中存的是字符串形式的元素。list.add("青城"); //add()用于向List集合容器中添加元素。list.add("博雅");System.out.println(list);System.out.println(list.size()); //size()用于获取集合中有多少个元素。System.out.println(list.get(1)); //get()获取指定索引(从0开始)位置的元素。

 

 ④.add(int index, Object element) 在列表的指定位置(从0开始)插入指定元素

ArrayList<String> list=new ArrayList<String>();
list.add("qc");
list.add("by");
System.out.println(list);
list.add(0,"yby");//在指定位置添加元素,原来位置的元素后置。
System.out.println(list);	

 

⑤.set(int i, Object element) 使用元素element替换索引i位置的元素,并返回被替换的元素。

	ArrayList<String> list =new ArrayList<String>();list.add("qc");list.add("by");System.out.println(list);list.set(1, "yby");//替换指定位置的元素,从1开始,替换了“yby”System.out.println(list);

 

⑥.clear() 从列表中移除所有元素。
⑦.isEmpty() 判断列表是否包含元素,不包含元素则返回 true,否则返回false

		ArrayList<String> list=new ArrayList<String>();list.add("yby");list.add("up");System.out.println(list);list.clear();System.out.println(list);boolean empty=list.isEmpty();System.out.println(empty);

 

⑧.contains(Object o) 如果列表包含指定的元素,则返回 true

	    ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");boolean flag = list.contains("gc"); //用来判断集合容器中是否含有参数元素。System.out.println(flag);

⑨.remove(int index) 移除列表中指定位置的元素,并返回被删元素,删除位置后面的元素(如果有)向前移动。
 

		ArrayList<String> list =new ArrayList<String>();list.add("yby");list.add("up");list.add("up!");System.out.println(list);//删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移。System.out.println(list);System.out.println(list.remove(1));System.out.println(list);

⑩.remove(Object o) 从List集合中移除第一次出现的指定元素,移除成功返回true,否则返回false。当且仅当List集合中含有满(o==null ? get(i)==null : o.equals(get(i)))条件的最低索引i的元素时才会返回true。

ArrayList<String> list =new ArrayList<String>();list.add("青城");list.add("博雅");list.add("博雅");list.add("教育");System.out.println(list.remove("博雅")); //删除List集合元素,返回boolean,并后面元素前移。System.out.println(list);

11.iterator() 返回按适当顺序在列表的元素上进行迭代的迭代器。

        ArrayList<String> list = new ArrayList<>();list.add("元素1");list.add("元素2");list.add("元素3");// 获取 Iterator 对象Iterator<String> iterator = list.iterator();// 使用 while 循环遍历集合while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);}

12.for循环遍历List集合:

		ArrayList<String> list = new ArrayList<String>();list.add("青城");list.add("博雅");for (int i = 0; i < list.size(); i++) {  //用size方法获取长度。System.out.println(list.get(i));  //用get方法获取值。}

13.加强for循环遍历List集合:

		ArrayList<String> list=new ArrayList<String>();list.add("yby");list.add("upup!");for(String i:list) {System.out.print(i+" ");}

相关文章:

Java——ArrayList集合

ArrayList&#xff1a;基于动态数组实现&#xff0c;支持随机访问&#xff0c;适合频繁的随机访问操作&#xff0c;但在插入和删除元素时性能较差。 技术层面介绍 所属类库&#xff1a;ArrayList 位于 java.util 包中&#xff0c;它实现了 List 接口&#xff0c;因此具备 Lis…...

基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤

该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景&#xff1a;大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址&#xff1a; http://book.gitapp.cn 后台地址&#xff1a;http://book.gitapp.cn/#/admin 后台管理帐号&#xff1a; 用户名&…...

Flutter运行错误:UG! exception in phase ‘semantic analysis‘

最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行&#xff0c;结果一直跑不起来&#xff0c;错误日志如下&#xff1a; 执行命令查看版本信息&#xff1a; flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…...

Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制

Python-docx库详解&#xff1a;轻松实现Word文档自动化生成与图片尺寸控制 在现代办公自动化的浪潮中&#xff0c;文档处理是一项不可或缺的任务。Python作为一种强大的编程语言&#xff0c;提供了丰富的库来简化这些任务。其中&#xff0c;python-docx库是处理Word文档的有力…...

【NLP 42、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】

目录 数据文件 一、模型定义 1.模型初始化 代码运行流程 2.前向传播&#xff0c;计算损失 ⭐ 代码运行流程 二、加载语料 代码运行流程 三、 随机生成样本 代码运行流程 四、建立模型 五、采样策略选择 代码运行流程 六、模型效果测试 代码运行流程 七、模型训练 代码运行流程 …...

HTTPS

目录 一 HTTPS是什么 二 加密 三 加密方案 四 CA机构/证书 五 最终方案(对称密钥/非对称密钥/CA证书)和总体流程 一 HTTPS是什么 在应用层存在SSL&#xff0c;TLS(HTTP之下&#xff0c;传输层之上)加密/解密安全协议&#xff0c;如果HTTP经过这个协议&#xff0c;对端也走…...

electron框架(4.0)electron-builde和electron Forge的打包方式

----使用electron-builder打包&#xff08;需要魔法&#xff09; --安装electron-builder: npm install electron-builder -D--package.json中进行相关配置&#xff1a; {"name": "video-tools","version": "1.0.0","main&quo…...

SaaS系统的销售微服务与权限微服务边界设计

在设计SaaS系统的销售微服务与权限微服务的边界时&#xff0c;需要结合领域驱动设计&#xff08;DDD&#xff09;和微服务拆分原则&#xff0c;确保高内聚、低耦合。以下是结合微服务架构原则、多租户SaaS需求及权限管理场景的完整设计方案&#xff0c;整合了权限服务与销售服务…...

Unity-AI-Deepseek生成的生成模型代码

结果 能用&#xff0c;不是很理想&#xff0c;从左到右&#xff0c;分别是body,眼睛,演睫毛,手指套&#xff08;如果你知道这是什么&#xff09;结果不是很理想 (下面代码已包含&#xff0c;修复的切线只能传Vector3参数&#xff0c;Unity2022测试&#xff09; 你们帮我看看…...

Django REST Framework 请求封装源码解析与实现流程

版本说明&#xff1a; Django: V4.2.20 Django Rest Framework: V3.15.2 一、核心封装流程示意图 #mermaid-svg-qXJLIa9Bx1TCiPSN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qXJLIa9Bx1TCiPSN .error-icon{fill…...

简介PyCDE:Python CIRCT Design Entry

简介PyCDE&#xff1a;Python CIRCT Design Entry 引言 在硬件设计和验证领域&#xff0c;随着设计复杂性的增加&#xff0c;传统的方法往往难以满足现代设计的需求。PyCDE&#xff08;Python CIRCT Design Entry&#xff09;作为CIRCT项目的一部分&#xff0c;旨在为硬件设计…...

Python实现deepseek接口的调用

简介&#xff1a;DeepSeek 是一个强大的大语言模型&#xff0c;提供 API 接口供开发者调用。在 Python 中&#xff0c;可以使用 requests 或 httpx 库向 DeepSeek API 发送请求&#xff0c;实现文本生成、代码补全&#xff0c;知识问答等功能。本文将介绍如何在 Python 中调用 …...

考研课程安排(自用)

文章目录 408数据结构&#xff08;王道&#xff09;计算机组成原理&#xff08;王道&#xff09;操作系统&#xff08;王道&#xff09;计算机网络&#xff08;湖科大版&#xff09; 数学一高等数学&#xff08;微积分&#xff09;线性代数和概率论 408 数据结构&#xff08;王…...

Mybatis操作数据库(注解+xml两个方式)

文章目录 1.个人回顾2.关于mybatis注解的说明3.字段和属性不匹配的解决方案3.1第一个方案3.2第二个方案3.3第三个方案 4.xml路径配置5.xml里面的字段映射 1.个人回顾 刚刚翻看了一下自己的这个之前写的博客&#xff0c;上一次和这个javaee相关的博客还是去年写的&#xff0c;也…...

文心快码 使用体验与介绍

一、文心快码的核心作用 文心快码是百度基于文心大模型开发的智能代码助手&#xff0c;核心价值包括&#xff1a; 代码生成与补全 通用开发&#xff1a;根据注释生成HTML/CSS/JS、Python、Java等代码C专项&#xff1a;生成类定义、STL容器操作、智能指针代码&#xff08;如st…...

区块链交易

文章目录 交易准备合约和代码逻辑合约compile.jsindex.js 运行 交易 项目来自https://github.com/Dapp-Learning-DAO/Dapp-Learning/blob/main/basic/02-web3js-transaction/README-cn.md 本项目包含对交易进行签名&#xff0c;发送&#xff0c;接收交易回执&#xff0c;验证…...

LeetCode 160 Intersection Of Two Linked Lists 相交链表 Java

题目&#xff1a;找到两个相交列表的起始点&#xff0c;如图c1开始为A和B两个链表的相交点 举例1&#xff1a;8为两个链表的相交点。 注意&#xff1a;相交不止是数值上的相同。 举例2&#xff1a;2为相交点 举例3&#xff1a;没有相交点 解题思路&#xff1a; 相交证明最后一…...

体育直播模板nba英超直播欧洲杯直播模板手机自适应

源码名称&#xff1a;体育直播模板nba英超直播欧洲杯直播模板手机自适应帝国cms 7.5模板 开发环境&#xff1a;帝国cms7.5 空间支持&#xff1a;phpmysql 带软件采集&#xff0c;可以挂着自动采集发布&#xff0c;无需人工操作&#xff01; 模板特点&#xff1a; 程序伪静态…...

Android Compose 图标按钮深度剖析:从源码到实践(五)

Android Compose 图标按钮深度剖析&#xff1a;从源码到实践 一、引言 在现代 Android 应用开发中&#xff0c;用户界面的交互性和美观性至关重要。图标按钮作为一种常见的 UI 元素&#xff0c;以其简洁直观的特点&#xff0c;在提升用户体验方面发挥着重要作用。Android Com…...

【Dive Into Stable Diffusion v3.5】2:Stable Diffusion v3.5原理介绍

【Dive Into Stable Diffusion v3.5】系列博文&#xff1a; 第1篇&#xff1a;开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练第2篇&#xff1a;Stable Diffusion v3.5原理介绍 目录 1 前言1.1 扩散模型的原理1.2 损失函数1.3 加噪流程1.4 推理流程1.5 negative pr…...

WPF 布局舍入(WPF 边框模糊 或 像素错位 的问题)

1. 什么是 WPF 布局舍入&#xff1f; 在 WPF 开发过程中&#xff0c;可能会遇到界面模糊、边框错位、文本渲染不清晰等问题。这些现象通常是由于 WPF 采用 设备无关像素&#xff08;DIP, Device Independent Pixels&#xff09;&#xff0c;在不同 DPI 设置下&#xff0c;UI 元…...

前端-选中pdf中的文字并使用,显示一个悬浮的翻译按钮(本地pdfjs+iframe)不适用textlayer

使用pdfjs移步– vue2使用pdfjs-dist实现pdf预览&#xff08;iframe形式&#xff0c;不修改pdfjs原来的ui和控件&#xff0c;dom层可以用display去掉一部分组件&#xff09; 方案1&#xff1a;获取选择文本内容的最前面的字符坐标的位置&#xff08;这种写法会导致如果选择超出…...

Mongodb分片模式部署

MongoDB 分片集群部署教程 1. 概述 MongoDB 分片是一种用于处理大规模数据集的集群技术。通过分片&#xff0c;MongoDB 可以将数据分布在多个服务器上&#xff0c;从而提高存储容量和读写性能。本教程将详细介绍如何从零开始部署 MongoDB 分片集群。 介绍 分片集群中主要由三…...

「一起学后端」Nest.js + MySQL 查询方法教学文档

Nest.js MySQL 查询方法教学文档 文章目录 Nest.js MySQL 查询方法教学文档1. 基础 CRUD 操作1.1 创建记录1.2 查询记录1.3 更新记录1.4 删除记录 2. 复杂查询2.1 分页与排序2.2 关联查询&#xff08;JOIN&#xff09;2.3 聚合查询2.4 子查询 3. 高级操作3.1 事务处理3.2 Typ…...

基于Spring Boot的企业内管信息化系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

【学习笔记】LLM推理与部署

文章目录 1 [LLMs inference] quantization 量化整体介绍&#xff08;bitsandbytes、GPTQ、GGUF、AWQ&#xff09;2 [LLMs inference] quantization 量化整体介绍&#xff08;bitsandbytes、GPTQ、GGUF、AWQ&#xff09;3 [LLMs serving] openrouter & vllm host LLM 推理服…...

leetcode-134.加油站

油箱容积无限&#xff0c;要求能环岛&#xff0c;说明总共加起来的油是不少于消耗量的&#xff0c;这是唯一一个决定能否环岛的变量&#xff0c;只要油量够&#xff0c;那么必定有一段路是攒油的路&#xff0c;它供给后续的消耗&#xff0c;使得油箱总是不空。 如果油量足够&am…...

companion object和object 从kotlin转java分析

说明 companion object 中 companion类中的方法是普通的方法 在外部类中生成静态变量&#xff0c;静态companion 对象 object MyClass2 中 类中方法是普通方法 在MyClass2中生成静态变量&#xff0c;静态MyClass2对象&#xff0c; 一 companion object 使用 kotlin转java pa…...

检索增强生成(2)本地PDF 本地嵌入模型

from langchain_community.document_loaders import PyPDFLoader from pathlib import Pathdef load_local_pdf(file_path):if not Path(file_path).exists():raise FileNotFoundError(f"文件 {file_path} 不存在&#xff01;")loader PyPDFLoader(file_path)try:do…...

关于TVS管漏电流的问题?

问题描述&#xff1a; 在量产的带电池故事机生产中&#xff0c;工厂产线测试电流时&#xff0c;有1台机器电流比正常机器大10mA左右。 原因分析&#xff1a; 1、分析电路原理图&#xff0c;去除可能出现问题的电压或器件&#xff08;不影响系统&#xff09;&#xff0c;发现…...

2025前端面试题记录

vue项目目录的执行顺序是怎么样的&#xff1f; 1、package.json   在执行npm run dev时&#xff0c;会在当前目录寻找package.json文件&#xff0c;此文件包含了项目的名称版本、项目依赖等相关信息。 2、webpack.config.js(会被vue-cli脚手架隐藏) 3、vue.config.js   对…...

Linux系统docker部署Ollama本地大模型及部署Hugging Face开源模型,ollama相关注意点,非ollama模型创建,模型量化,显存建议

本文主要描述在Linux系统使用docker部署ollama自有模型以及Hugging Face开源模型&#xff0c;也涉及到一些相关注意点&#xff0c;欢迎沟通讨论~ 拉取镜像 拉取ollama最新镜像&#xff1a;docker pull ollama/ollama:latest 运行ollama 执行&#xff1a;docker run -d --res…...

.NET 9 彻底改变了 API 文档:从 Swashbuckle(Swagger) 到 Scalar

示例代码下载&#xff1a;https://download.csdn.net/download/hefeng_aspnet/90404652 摘要 API 文档是现代软件开发的支柱。随着 .NET 9 从 Swashbuckle 转向 Microsoft.AspNetCore.OpenApi&#xff0c;开发人员需要新的策略来保持高效。本文探讨了这些变化&#xff0c;并介…...

C++——权限初识

权限初识 C中的访问权限主要分为三种&#xff1a; public 、 private 和 protected 。这些权限决定了类成员&#xff08;包括数据成员和成员函数&#xff09;的可访问性。以下是一个总结表格&#xff0c;说明了在不同情况下这些权限如何应用&#xff1a; 使用权限&#xff08;…...

如何让自动驾驶汽车“看清”世界?坐标映射与数据融合概述

在自动驾驶领域,多传感器融合技术是实现车辆环境感知和决策控制的关键。其中,坐标系映射和对应是多传感器融合的重要环节,它涉及到不同传感器数据在统一坐标系下的转换和匹配,以实现对车辆周围环境的准确感知。本文将介绍多传感器融合中坐标系映射和对应的数学基础和实际应…...

如何在 Linux 系统中部署 FTP 服务器:从基础配置到安全优化

一、为什么选择 Linux 部署 FTP 服务器&#xff1f; FTP&#xff08;文件传输协议&#xff09;作为互联网最早的文件传输标准&#xff0c;至今仍在企业内部文件共享、镜像站点同步等场景中广泛应用。Linux 系统凭借其稳定性、开源特性及丰富的工具链&#xff0c;成为搭建 FTP 服…...

C++——引用

目录 举个例子&#xff1a; 引用的基本特性 引用的定义语法如下&#xff1a; 1. 引用必须初始化&#xff1a; 2. 引用是别名&#xff1a; 3. 引用不能为空&#xff1a; 4. 引用不能重新绑定&#xff1a; 引用的使用场景 函数参数传递&#xff1a; 函数返回值&#xf…...

unity开发效率提升笔记

本文将记录提升Unity开发效率的若干细节&#xff0c;持续更新 一.VSCode文件标签多行显示 1.File->Preference->Settings (快捷键Ctrl 逗号) 2.搜索workbench.editor.wrapTabs 3.勾选上这个单选开关 若依然不是多行 4.搜索workbench.editor.tabSizing,选择fi…...

VScode页面错误,可以编译C++20版本,但页面显示有错误的解决方案

问题回顾 学习信号量时使用到了C20版本的一些变量&#xff0c;可以正常编译和运行&#xff0c;但在编辑器上显示存在错误&#xff0c;如图所示 显示结果&#xff0c;提示命名空间std没有成员变量counting_semaphore&#xff0c;如图所示 解决办法 1、确保自己安装了C/C插件…...

[WEB开发] JDBC

一. JDBC基础 JDBC (Java DataBase Connectivity): 就是使用 java 语言操作数据库的一套API. JDBC本质: 一套标准接口, 规范各个数据库厂商实现这套接口, 提供驱动使用接口, 真正执行的是实现类 二. 实战 2.1 非预编译sql // 1. 注册数据库驱动Class.forName("com.my…...

Linux shell脚本2-test条件测试语句:文件类型、字符串是否相等、数字大小比较、多重条件判断,测试语句验证

目录 1.条件测试语句 2.文件表达式测试 2.1测试文件状态的条件表达式 2.2程序验证 2.2.1 单个文件验证 2.2.3.两个文件验证 3.字符串表达式测试 4.数字表达式测试 5.复合表达式测试 1.条件测试语句 在写shell脚本时&#xff0c;经常遇到的问题就是判断字符串是否相等&…...

linux_git使用

1. git的历史 git是开源的 2. git的理解 版本控制 只进行管理源文件 3. git的使用 3.1. git命令安装 sudo yum install git sudo apt install -y git 查看是否安装成功 $git --version 3.2. git使用注意事项 首次使用git需要输入用户名和邮件 gitignore&#xff1…...

Linux网络相关概念和重要知识(2)(UDP套接字编程、聊天室的实现、观察者模式)

目录 1.UDP套接字编程 &#xff08;1&#xff09;socket编程 &#xff08;2&#xff09;UDP的使用 ①socket ②bind ③recvfrom ④sendto 2.聊天室的实现 &#xff08;1&#xff09;整体逻辑 &#xff08;2&#xff09;对sockaddr_in的封装 &#xff08;3&#xff09…...

2025年03月18日柯莱特(外包宁德)一面前端面试

目录 自我介绍你怎么从0到1搭建项目的webpack 的构建流程手写webpack插件你有什么想问我的吗 2. 你怎么从 0 到 1 搭建项目的 在面试中回答从 0 到 1 搭建前端项目&#xff0c;可按以下详细步骤阐述&#xff1a; 1. 项目前期准备 需求理解与分析 和产品经理、客户等相关人…...

汇川EASY系列之以太网通讯(MODBUS_TCP做主站)

汇川Easy系列以太网通讯中(MODBUSTCP,plc做主站),终于可以不用使用指令就可以完成了,全程通过简单的配置就可通讯。本文将通过EASY系列PLC与调试助手之间完成此操作。具体演示如下; 关于主站和从站的介绍 A/请求:即主动方 向被动方发送的一个要求的信息。 B/主站:发…...

uni-app jyf-parser将字符串转化为html 和 rich-text

uni-app jyf-parser将字符串转化为html-CSDN博客 方法二&#xff1a; rich-text | uni-app...

PyTorch中Batch Normalization1d的实现与手动验证

PyTorch中Batch Normalization1d的实现与手动验证 一、介绍 Batch Normalization&#xff08;批归一化&#xff09;是深度学习中常用的技术&#xff0c;用于加速训练并减少对初始化的敏感性。本文将通过PyTorch内置函数和手动实现两种方式&#xff0c;展示如何对三维输入张量…...

LoRA中黑塞矩阵、Fisher信息矩阵是什么

LoRA中黑塞矩阵、Fisher信息矩阵是什么 1. 三者的核心概念 黑塞矩阵(Hessian) 二阶导数矩阵,用于优化问题中判断函数的凸性(如牛顿法),或计算参数更新方向(如拟牛顿法)。 Fisher信息矩阵(Fisher Information Matrix, FIM) 统计学中衡量参数估计的不确定性,反映数据…...

Transformer中,Fisher矩阵与权重之间关系

Transformer中,Fisher矩阵与权重之间关系 目录 Transformer中,Fisher矩阵与权重之间关系一、Fisher矩阵与Transformer权重的关系二、Fisher矩阵的更新方式三、举例说明给出案例:Transformer权重矩阵,Fisher矩阵,说明对应关系和怎么更新二阶导数计算需要大量算力有什么方法…...

本地安装deepseek大模型,并使用 python 调用

首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步&#xff0c;就可以 点击搜索 Models &#xff1a; https://ollama.com/search然后点击下载&#xff1a; 选择后复制: ollama run deepseek-r1:32b例如&#xff1a; 让它安装完成后&#xff1…...