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

List系列集合

List系列集合特点:有序,可重复,有索引

  ArrayList:有序,可重复,有索引

LinkedList:有序,可重复,有索引

(底层实现不同!适合的场景不同!)

List集合的特有方法

d7ce1e7aa33a4ccaa98b9105bb6ecbe5.png

1,创建一个ArrayList集合对象(有序,可重复,有索引)

 List<String> list = new ArrayList<>();//经典代码 List是接口list.add("简隋英");list.add("李玉");list.add("李玉");list.add("邵群");System.out.println(list);//[简隋英,李玉,李玉,邵群]

2,public void add(int index , E element):在某个索引位置插入元素

        list.add(2,"李程秀");System.out.println(list);//[简隋英,李玉,李程秀,李玉,邵群]

3,public E remove(int index):根据索引删除元素,返回被删除元素

        System.out.println(list.remove(2));//李程秀System.out.println(list);//[简隋英,李玉,李玉,邵群]

4,public E get(int index):返回集合中指定位置的元素

System.out.println(list.get(0));//简隋英

5,public E set(int index , E element):修改索引位置处的元素,修改成功后,会返回原来的数据

        System.out.println(list.set(2, "李程秀"));System.out.println(list);//[简隋英,李玉,李程秀,邵群]

List集合支持的遍历方式

1,for循环(因为List集合有索引)

import java.util.*;public class Work1 {public static void main(String[] args)  {List<String> list = new ArrayList<>();//经典代码 List是接口list.add("兰波");list.add("白楚年");list.add("陆言");list.add("毕揽星");//System.out.println(list);for (int i = 0; i < list.size(); i++) {String s = list.get(i);System.out.println(s);}

2,迭代器

         Iterator<String> it = list.iterator();while (it.hasNext()) {System.out.println(it.next());}

3,增强for循环

        for (String s : list) {System.out.println(s);}

4,Lambda表达式

        list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});}
}

ArrayList集合的底层原理

基于数组实现的

1da5dbd7371b40b1aebca5f407f27e70.png

 

查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同

删除效率低:可能需要把后面很多的数据进行前移

添加效率极低:可能需要把后面很多的数据后移,再添加元素;或者也可能需要进行数组的扩容

ArrayList集合适合的应用场景

38c1bd460452442ba79639e2734c86ad.png

 

LinkedList集合的底层原理

基于双链表实现的

9b04267eef054f28819d65b886038345.png

ba6c43186e034f32b6e9f4b04498154e.png 

ac991d519c394ecba0ad971d2dfc3dc4.png 

3544a2eaa08b4ec7941739ca8a755b08.png 

5ed60dbd0ef74da2b788beaa560513f1.png 

 LinkedList的应用场景之一:可以用来设计队

import java.util.*;public class Work1 {public static void main(String[] args)  {//创建一个队列LinkedList<String> queue = new LinkedList<>();queue.addLast("1号");queue.addLast("2号");queue.addLast("3号");queue.addLast("4号");System.out.println(queue);//出队操作System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());}
}

LinkedList的应用场景之一:可以用来设计栈

749373b75e4a400e85bfc432e71b18d3.png

 

import java.util.*;public class Work1 {public static void main(String[] args)  {LinkedList<String> stack = new LinkedList<>();//压栈(push)stack.addFirst("第1颗子弹");stack.addFirst("第2颗子弹");stack.addFirst("第3颗子弹");stack.addFirst("第4颗子弹");System.out.println(stack);//出栈(pop)System.out.println(stack.removeFirst());System.out.println(stack.removeFirst());System.out.println(stack);}
}

 

 

相关文章:

List系列集合

List系列集合特点&#xff1a;有序&#xff0c;可重复&#xff0c;有索引 ArrayList&#xff1a;有序&#xff0c;可重复&#xff0c;有索引 LinkedList&#xff1a;有序&#xff0c;可重复&#xff0c;有索引 &#xff08;底层实现不同&#xff01;适合的场景不同&#xff01;…...

SQL 金额数值转换成中文大写

需求&#xff1a;将金额转换成中文大写格式填入单据合计行&#xff1a; _佰_拾_万_仟_佰_拾_元_角_分 1234567.89 壹佰贰拾叁万肆仟伍佰陆拾柒元捌角玖分 1.函数转换 drop function n2C;CREATE FUNCTION n2C (num numeric(14,2)) RETURNS VARCHAR(20) AS BEGIN …...

在Linux上安装KVM虚拟机

一、搭建KVM环境 KVM&#xff08;Kernel-based Virtual Machine&#xff09;是一个基于内核的系统虚拟化模块&#xff0c;从Linux内核版本2.6.20开始&#xff0c;各大Linux发行版就已经将其集成于发行版中。KVM与Xen等虚拟化相比&#xff0c;需要硬件支持的完全虚拟化。KVM由内…...

软件设计之原型模式

原型模式是从一个对象再创建另一个可定制的对象&#xff0c;而且不需要知道任何创建的细节。拷贝分浅拷贝和深拷贝。浅拷贝无法拷贝引用对象。在面试的时候&#xff0c;我们会投多家公司&#xff0c;根据岗位的不同我们会适当调整。使用原型模式可以快速达到需求&#xff0c;下…...

Android之高级UI

系统ViewGroup原理解析 常见的布局容器: FrameLayout, LinearLayout,RelativeLayoout,GridLayout 后起之秀&#xff1a;ConstraintLayout,CoordinateLayout Linearlayout Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {if (mOrientation …...

Qt:解决跨线程调用socket/IO类,导致报错的问题

Qt有很多IO相关的类&#xff0c;比如说QTcpSocket、QFile&#xff0c;总的来说&#xff0c;在Qt的框架内使用&#xff0c;还是非常方便的。 但是用过其他框架IO类的人&#xff0c;可能有一个很不习惯&#xff0c;就是Qt的所有IO类&#xff0c;都不推荐或者不可以跨线程操作&…...

长沙电信大楼火灾调查报告发布:系烟头引发。FIS来护航安全

近日&#xff0c;长沙电信大楼的火灾调查报告引起广泛关注。调查发现&#xff0c;火灾是由未熄灭的烟头引发&#xff0c;烟头点燃了室外平台的易燃物&#xff0c;迅速蔓延至整个建筑。这起悲剧再次提醒我们&#xff0c;小小的疏忽可能酿成大灾难。但如果我们能及时发现并处理这…...

【Web系列二十七】Vue实现dom元素拖拽并限制移动范围

目录 需求 拖拽功能封装 使用拖拽功能 vite-env.d.ts main.ts test.vue 需求 dom元素拖拽并限制在父组件范围内 拖拽功能封装 export const initVDrag (vue) > {vue.directive(drag, (el) > {const oDiv el // 当前元素oDiv.onmousedown (e) > {let target…...

【IEEE独立出版】2024第四届神经网络、信息与通信工程国际学术会议(NNICE 2024)

2024第四届神经网络、信息与通信工程国际学术会议&#xff08;NNICE 2024&#xff09; 2024 4th International Conference on Neural Networks, Information and Communication Engineering 2024第四神经网络、信息与通信工程国际学术会议&#xff08;NNICE 2024&#xff0…...

docker 推送tar包到远程仓库

tar 包 推送到远程仓库的步骤 - 导入镜像&#xff08;docker load -i 镜像名称&#xff09;示例&#xff1a;docker load -i yiyi-admin.tar- 打标签(docker tag 镜像id registry.cn-hangzhou.aliyuncs.com/空间名称/镜像名称:版本号)示例&#xff1a;docker tag $image_id reg…...

全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器

前言 很荣幸参与到由“极术社区和全志在线联合组织”举办的XR806开发板试用活动。本人热衷于各种的开发板的开发&#xff0c;同时更愿意将其实现到具体项目中。秉承以上原则&#xff0c;发现大家的重心都放在开发中的环境构建过程&#xff0c;缺少了不少实际应用场景的运用&am…...

python动态加载内容抓取问题的解决实例

问题背景 在网页抓取过程中&#xff0c;动态加载的内容通常无法通过传统的爬虫工具直接获取&#xff0c;这给爬虫程序的编写带来了一定的技术挑战。腾讯新闻&#xff08;https://news.qq.com/&#xff09;作为一个典型的动态网页&#xff0c;展现了这一挑战。 问题分析 动态…...

系列二十三、将一个第三方的类配置成bean的方式

一、将一个第三方的类配置成bean的方式 1.1、概述 日常的JavaEE开发中&#xff0c;难免不会遇到需要使用第三方的类的情况&#xff0c;比如&#xff1a;MyBatisPlus、RedisTemplate、DruidDataSource...&#xff0c;这些外部组件是不同的组织或个人提供的&#xff0c;我们为什…...

【长文干货】Python可视化教程

文章目录 数据介绍Matplotlib散点图折线图柱形图直方图 Seaborn散点图折线图柱形图直方图 Bokeh散点图折线条形图交互式 Plotly基本组合优化&#xff1a;定制化下拉菜单 总结 数据介绍 在这个小费数据集中&#xff0c;我们记录了20世纪90年代初期餐厅顾客在两个半月内给出的小…...

软件工程--需求工程--学习笔记(超详细)

软件需求工程是软件开发周期的第一个阶段&#xff0c;也是关系到软件开发成败最关键阶段&#xff0c;本章讲解需求的基础知识和需求工程的关键活动。这些知识对于结构化方法、面向对象方法、面向服务方法等都是适用的 本文参考教材&#xff1a;沈备军老师的《软件工程原理》 目…...

TemplateHit中提取query和hit比对上序列索引的映射字典

template_hits(Sequence[TemplateHit]数据格式)来自结构数据库搜索结果 python运行hhsearch二进制命令的包装器类 映射索引计算&#xff1a;TemplateHit 中含有 indices_query&#xff0c;需要换算成在原始query序列中的index&#xff0c;hit 中indices_hit 需要减去最小index…...

富必达API:一站式无代码开发集成电商平台、CRM和营销系统

一站式无代码开发的连接解决方案 电子商务、客户服务系统以及其它商业应用&#xff0c;是现代企业运营的重要部分。然而&#xff0c;将这些系统进行有效的整合往往需要复杂的API开发&#xff0c;这对很多企业来说是一个巨大的挑战。富必达API以其一站式的无代码开发解决方案&a…...

聊聊接口最大并发处理数

文章目录 前言并发和并行并发&#xff08;Concurrency&#xff09;并行&#xff08;Parallelism&#xff09;思考一下 前言 生活在 2023 年的互联网时代下&#xff0c;又是在国内互联网越发内卷的背景下&#xff0c;相信大家面试找工作、网上学习查资料时都了解过互联网系统设…...

6.如何利用LIO-SAM生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例

目录 1 octomap的安装 2 二维导航节点的建立及栅格地图的构建 3 三维栅格地图的建立 1 octomap的安装 这里采用命令安装&#xff1a; sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic-octomap-rviz-plugins ros-melodic-octomap-server 这样…...

【多传感器融合】BEVFusion: 激光雷达和视觉融合框架 NeurIPS 2022

前言 BEVFusion其实有两篇&#xff0c; 【1】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework. NeurIPS 2022 | 北大&阿里提出 【2】BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 2022 | MIT提出 本文先分…...

OpenClaw技能开发入门:为千问3.5-27B编写自定义模块

OpenClaw技能开发入门&#xff1a;为千问3.5-27B编写自定义模块 1. 为什么需要自定义技能&#xff1f; 去年冬天&#xff0c;我发现自己每天早晨都要手动查询天气并发送给家人。重复的操作让我开始思考&#xff1a;能否让OpenClaw帮我自动完成这个任务&#xff1f;这就是我踏…...

HDRI-Generator: 环境贴图生成AI

在 3D 渲染中&#xff0c;环境光通常比模型本身更难处理。 很多开发者或设计师都有类似经验&#xff1a;即使模型质量很高&#xff0c;如果光照不合理&#xff0c;最终效果仍然会显得不真实。HDRI&#xff08;High Dynamic Range Image&#xff09;长期以来是解决这一问题的核…...

esp-nimble-cpp:ESP32上轻量级BLE C++开发指南

1. 项目概述esp-nimble-cpp是专为 ESP32 平台设计的 C 封装库&#xff0c;其核心目标是为 Apache NimBLE BLE 协议栈提供面向对象、线程安全且资源高效的抽象层。该库并非简单封装&#xff0c;而是以工程实践为导向的深度重构&#xff1a;它在保持与 nkolban 经典cpp_utilsBLE …...

【ESP32-S3】通过ROS2使用YDLIDAR X2进行SLAM、自主导航方案选择

通过ROS2使用YDLIDAR X2进行SLAM、自主导航方案选择背景一、方案总览&#xff08;两种主流实现&#xff09;方案A&#xff1a;纯透传&#xff08;最简&#xff0c;推荐入门&#xff09;方案B&#xff1a;Micro-ROS&#xff08;标准ROS 2架构&#xff0c;适合完整导航&#xff0…...

Chrome 安全机制深度解析(二)告别 unsafe-inline:CSP 进阶实战与攻防博弈,构建真正无法绕过的内容防线

配置了 CSP 依然被 XSS 打穿&#xff0c;问题往往不在攻击有多高明&#xff0c;而在于你始终舍不得删掉那两个词&#xff1a;unsafe-inline、unsafe-eval。真正的强安全 CSP&#xff0c;从来不是妥协的产物&#xff0c;而是一套从策略设计到工程落地的完整体系。上一篇我们讲到…...

电源管理入门-12 clock驱动

电源管理的两个大方面就是电压和时钟。 Clock 时钟就是 SoC 中的脉搏&#xff0c;由它来控制各个部件按各自的节奏跳动。比如&#xff0c;CPU主频设置&#xff0c;串口的波特率设置&#xff0c;I2S的采样率设置&#xff0c;I2C的速率设置等等。这些不同的clock设置&#xff0c;…...

泰金新能科创板上市:市值79亿 预计第一季净利降幅超45%

雷递网 雷建平 3月31日西安泰金新能科技股份有限公司&#xff08;简称&#xff1a;“泰金新能”&#xff0c;股票代码&#xff1a;“688813”&#xff09;今日在上交所上市。泰金新能发行价为26.28元/股&#xff0c;发行4000万股&#xff0c;募资总额为10.51亿元。泰金新能开盘…...

AI开发AI:借助快马多模型能力,迭代式构建你的智能健康管理Agent

最近在尝试开发一个健康管理AI助手&#xff0c;发现用传统方式写代码调试特别耗时。后来尝试了InsCode(快马)平台&#xff0c;发现用AI对话的方式迭代开发简直打开了新世界。记录下这个"用AI开发AI"的完整过程&#xff1a; 基础框架搭建 最开始只需要一个能交互的对话…...

Hunyuan-MT-7B多语种能力:Pixel Language Portal在联合国六种官方语言互译中的表现

Hunyuan-MT-7B多语种能力&#xff1a;Pixel Language Portal在联合国六种官方语言互译中的表现 1. 引言&#xff1a;当像素冒险遇见多语言翻译 在全球化交流日益频繁的今天&#xff0c;语言障碍仍然是横亘在不同文化之间的无形壁垒。传统翻译工具往往给人冰冷、机械的使用体验…...

牙科手术显微镜市场:其中中国市场占比超15%

在口腔诊疗向精细化、微创化演进的进程中&#xff0c;牙科手术显微镜作为核心光学放大设备&#xff0c;凭借其高照度、高景深与高清晰度特性&#xff0c;成为提升根管治疗、牙周手术及种植修复等环节精准性的关键工具。该设备集成连续变倍观察、同轴照明、术野调焦及影像记录系…...