ArrayList与顺序表
文章目录
- 一. 顺序表是什么
- 二. ArrayList是什么
- 三. ArrayList的构造方法
- 四. ArrayList的常见方法
- 4.1 add()
- 4.2 size()
- 4.3 remove()
- 4.4 get()
- 4.5 set()
- 4.6 contains()
- 4.7 lastIndexOf()和 indexOf()
- 4.8 subList()
- 4.9 clear()
- 以上就是ArrayList的常见方法!!
一. 顺序表是什么
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。
二. ArrayList是什么

在集合框架中,ArrayList是一个普通的类,实现了List接口,它有以下几个特点:
- ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。
- ArrayList支持随机访问,但其插入和删除效率低。
- ArrayList是可以clone的,是支持序列化的。
- ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList。
三. ArrayList的构造方法
ArrayList提供了以下三种构造方法
方法一:也是最推荐的方法

// 构造一个空的列表
List<Integer> list = new ArrayList<>();
方法二:

// 构造一个具有10个容量的列表
List<Integer> list = new ArrayList<>(10);
方法三:

List<Integer> list = new ArrayList<>(10);
List<Integer> list2 = new ArrayList<>(list);
重点
对顺序表进行初始化的时候,一定要指定元素的类型,否则,任意类型的元素都可以存放,会造成严重后果。
四. ArrayList的常见方法
4.1 add()

public static void main(String[] args) {List<Integer> list=new ArrayList<>(); //此处的add():将元素尾插进ArrayList中list.add(1);list.add(2);System.out.println(list);//此处的add():在list的index位置插入指定元素,index及后续的元素统一往后搬移一个位置list.add(1,10);System.out.println(list);}

4.2 size()
获取list中有效元素个数
public static void main(String[] args) {List<Integer> list=new ArrayList<>();list.add(1);list.add(2);System.out.println(list);// 获取list中有效元素个数System.out.println(list.size());}
4.3 remove()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");System.out.println(list);// 删除指定元素,找到了就删除,该元素之后的元素统一往前搬移一个位置,这里没有找到list.remove("梨");System.out.println(list);//删除list中index位置上的元素,这里要注意 index 是否有效list.remove(1);System.out.println(list);}

4.4 get()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");//获取index位置上的元素,注意index是否有效(index必须介于[0,size)间)System.out.println(list.get(0));}

4.5 set()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");//设置index位置上的元素为指定元素,注意index是否有效list.set(1,"梨");System.out.println(list.get(1));System.out.println(list);}

4.6 contains()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");//查看list中是否包含指定元素,包含返回true,否则返回falseif(list.contains("西瓜")){System.out.println("list中包含西瓜元素");}else{System.out.println("list中不包含西瓜元素");}}

4.7 lastIndexOf()和 indexOf()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");list.add("梨");list.add("苹果");// 查找指定元素第一次出现的位置:indexOf从前往后找,lastIndexOf从后往前找System.out.println(list.indexOf("苹果"));System.out.println(list.lastIndexOf("苹果"));}

4.8 subList()

public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("苹果");list.add("香蕉");list.add("梨");list.add("苹果");// 截取list中[0, 2)之间的元素构成一个新的ArrayList返回List<String> list2=list.subList(0,2);System.out.println(list2);}

4.9 clear()
清空ArrayList中的元素。
以上就是ArrayList的常见方法!!
相关文章:
ArrayList与顺序表
文章目录 一. 顺序表是什么二. ArrayList是什么三. ArrayList的构造方法四. ArrayList的常见方法4.1 add()4.2 size()4.3 remove()4.4 get()4.5 set()4.6 contains()4.7 lastIndexOf()和 indexOf()4.8 subList()4.9 clear() 以上就是ArrayList的常见方法!…...
【【萌新的STM32-22中断概念的简单补充】】
萌新的STM32学习22-中断概念的简单补充 我们需要注意的是这句话 从上面可以看出,STM32F1 供给 IO 口使用的中断线只有 16 个,但是 STM32F1 的 IO 口却远远不止 16 个,所以 STM32 把 GPIO 管脚 GPIOx.0~GPIOx.15(xA,B,C,D,E,F,G)分别对应中断…...
Java 中数据结构HashMap的用法
Java HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是…...
Request对象和response对象
一、概念 request对象和response对象是通过Servlet容器(如Tomcat)自动创建并传递给Servlet的。 Servlet容器负责接收客户端的请求,并将请求信息封装到request对象中,然后将request对象传 递给相应的Servlet进行处理。类似地&…...
设计模式之桥接模式
文章目录 一、介绍二、案例1. 组件抽象化2. 桥梁抽象化 一、介绍 桥接模式,属于结构型设计模式。通过提供抽象与实现之间的桥接结构,把抽象化与实现化解耦,使得二者可以独立变化。 《Head First 设计模式》: 将抽象和实现放在两…...
pom.xml配置文件失效,显示已忽略的pom.xml --- 解决方案
现象: 在 Maven 创建模块Moudle时,由于开始没有正确创建好,所以把它删掉了,然后接着又创建了与一个与之前被删除的Moudle同名的Moudle时,出现了 Ignore pom.xml,并且新创建的 Module 的 pom.xml配置文件失效…...
文本编辑器Vim常用操作和技巧
文章目录 1. Vim常用操作1.1 Vim简介1.2 Vim工作模式1.3 插入命令1.4 定位命令1.5 删除命令1.6 复制和剪切命令1.7 替换和取消命令1.8 搜索和搜索替换命令1.9 保存和退出命令 2. Vim使用技巧 1. Vim常用操作 1.1 Vim简介 Vim是一个功能强大的全屏幕文本编辑器,是L…...
【算法系列篇】位运算
文章目录 前言什么是位运算算法1.判断字符是否唯一1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 丢失的数字2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 两数之和3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 只出现一次的数字4.1 题目要求4.2 做题思路4.3 Java代码实现 5.…...
机器学习的测试和验证(Machine Learning 研习之五)
关于 Machine Learning 研习之三、四,可到秋码记录上浏览。 测试和验证 了解模型对新案例的推广效果的唯一方法是在新案例上进行实际尝试。 一种方法是将模型投入生产并监控其性能。 这很有效,但如果你的模型非常糟糕,你的用户会抱怨——这…...
RNN循环神经网络
目录 一、卷积核与循环核 二、循环核 1.循环核引入 2.循环核:循环核按时间步展开。 3.循环计算层:向输出方向生长。 4.TF描述循环计算层 三、TF描述循环计算 四、RNN使用案例 1.数据集准备 2.Sequential中RNN 3.存储模型,acc和lose…...
安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?
视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…...
Docker技术--Docker的安装
1..Docker的安装方式介绍 Docker官方提供了三种方式可以实现Docker环境的安装。分别为:Script、yum、rpm。在实际的环境中建议使用yum或者是rpm。 2..Docker的yum安装 # 1.下载docker wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…...
客户案例|MemFire Cloud助推应急管理业务,打造百万级数据可视化大屏
「导语」 硬石科技,成立于2018年,总部位于武汉,是一家专注于应急管理行业和物联感知预警算法模型的技术核心的物联网产品和解决方案提供商。硬石科技作为一家高新技术企业,持有6项发明专利,拥有100余项各类平台认证和资…...
蒲公英路由器如何设置远程打印?
现如今,打印机已经是企业日常办公中必不可少的设备,无论何时何地,总有需要用到打印的地方,包括资料文件、统计报表等等。 但若人在外地或分公司,有文件急需通过总部的打印机进行打印时,由于不在同一物理网络…...
国产自主可控C++工业软件可视化图形架构源码
关于国产自主代替的问题是当前热点,尤其是工业软件领域。 “一个功能强大的全自主C跨平台图形可视化架构对开发自主可控工业基础软件至关重要!” 作为全球领先的C工业基础图形可视化软件提供商,UCanCode软件有自己的思考,我们认…...
【linux命令讲解大全】022.网络管理工具和命令概述
文章目录 lsattr命令语法选项参数实例 nmcli补充说明语法选项OPTIONSOBJECT 实例 systemctl补充说明任务 旧指令 新指令 实例 开启防火墙22端口 从零学 python lsattr命令 用于查看文件的第二扩展文件系统属性。 语法 lsattr(选项)(参数) 选项 -E:可显示设备属…...
应急响应流程及思路
应急响应流程及思路 一:前言 对于还没有在项目中真正接触、参与过应急响应的同学来说,“应急响应”这四个字见的最多的就是建筑工地上的横幅 —— 人人懂应急,人人会响应。这里的应急响应和我们网络安全中的应急响应有着某种本质的相似&…...
网页自适应
自适应 那就要最好提前商量好 是全局自适应 或者是 局部自适应 一般网站页面纵向滚动条都是无法避免的 都是做横向适配也就是宽度 那就不能写死宽度像素 局部自适应 一般对父元素设置百分比就行 里面的子元素就设置固定像素、 比如一些登录 全局自适应 也就是要对每个元素…...
什么是Sui Kiosk,它可以做什么,如何赋能创作者?
创作者和IP持有者需要一些工具帮助他们在区块链上实现其商业模式。Sui Kiosk作为Sui上的一种原语可以满足这种需求,为创作者提供动态选项,使他们能够在任何交易场景中设置完成交易的条件。 本文将向您介绍为什么要在SuiFrens中使用Sui Kiosk,…...
【MySQL】mysql connect
目录 一、准备工作 1、创建mysql用户 2、删除用户 3、修改用户密码 3.1、自己改自己密码 3.2、root用户修改指定用户的密码 4、数据库的权限 4.1、给用户授权 4.2、回收权限 二、连接mysql client 1、安装mysql客户端库 2、验证是否引入成功 三、 mysql接口 1、初…...
MambaAD实战:5分钟搞定工业缺陷检测的SoTA模型部署(附代码)
MambaAD工业缺陷检测实战:从模型原理到产线部署全指南 引言:当状态空间模型遇见工业质检 在液晶面板生产线上,一个0.1mm的亮点缺陷可能导致整批产品报废;在汽车零部件铸造车间,细微的表面裂纹可能引发严重的安全隐患。…...
Display Driver Uninstaller深度清理实战指南
Display Driver Uninstaller深度清理实战指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 当你遭遇游戏帧…...
ubuntu系统检测内核配置是否支持Docker核心模块
有一些内核缺少 Docker 所需的核心模块(overlayfs、bridge、iptables 相关等)所以在安装docker之前可以先检查一下。 脚本,可以检测Kernel配置是否符合Docker的运行要求 源地址:https://github.com/moby/moby/blob/master/contr…...
ST7565SPI嵌入式LCD驱动库:轻量、可移植、零内存分配
1. ST7565SPI 驱动库概述ST7565 是 Sitronix 公司推出的单芯片图形点阵 LCD 控制器,广泛应用于工业人机界面、便携式仪器仪表、智能穿戴设备等对功耗、成本与显示质量有综合要求的嵌入式场景。其典型分辨率为 12864 像素,内置 12864 bit 显示 RAM&#x…...
SEO_网站SEO诊断与快速优化解决办法分享
<h2>SEO诊断:了解你的网站现状,为优化铺路</h2> <p>在当今数字化时代,拥有一个高效、优化良好的网站是任何企业或个人成功的关键。网站SEO诊断是这一过程中的重要步骤。通过网站SEO诊断,我们可以全面了解你的网…...
多层PCB结构与设计核心技术解析
多层PCB内部结构解析与设计指南1. 多层PCB技术概述1.1 多层PCB的基本概念现代电子设备对电路板的要求越来越高,多层PCB已成为复杂电子系统的标准配置。与单层或双层PCB相比,多层PCB通过在绝缘基材上叠加多个导电层,实现了更高的布线密度和更优…...
无需编程!DouyinLiveWebFetcher让运营人员轻松实现抖音直播弹幕实时采集
无需编程!DouyinLiveWebFetcher让运营人员轻松实现抖音直播弹幕实时采集 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 如…...
大量文件夹能一键改名吗?怎么改?4个干货技巧教你快速搞定
每次整理电脑文件时,面对成百上千个命名混乱的文件夹,手动逐个修改不仅耗时费力,还容易出现重复或格式错误。本文汇总了4种实用的批量重命名方法,从简单的系统自带功能到专业软件、插件工具,再到进阶的批处理脚本&…...
RustDesk 中继服务器搭建指南:告别卡顿,实现高效远程控制
1. 为什么你需要自建RustDesk中继服务器 远程办公已经成为现代工作方式的标配,但很多人在使用公共远程控制服务时都遇到过令人抓狂的卡顿问题。想象一下,你正在紧急处理服务器故障,画面却卡成了PPT;或者需要远程协助家人修电脑&a…...
asp毕业设计下载(全套源码+配套论文)——基于asp+sqlserver的WEB社区论坛设计与实现
基于aspsqlserver的WEB社区论坛设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspsqlserver的WEB社区论坛设计与实现,更多精选毕业设计项目下载见文末哦。 文章目录: 基于aspsqlserver的WEB社区论坛设计与…...
