Java集合类学习--List

【Java学习】第21节:集合类 - List Java是一种广泛使用的编程语言,由Sun Microsystems(现在是Oracle Corporation)首次推出。它是一种跨平台的编程语言,意味着您可以编写一次代码,然后在多个不同的计算机系统上运行,而无需对其进行修改。Java被广泛用于开发各种类型的应用程序,包括企业级应用、移动应用、Web应用、游戏等。 阅读详情

List

List 是最常用的容器之一。List继承自Collection ,分析源码时,优先分析接口的源码,因此这里先从 List 接口分析。List 方法列表如下:
在这里插入图片描述
由于继承自Collection ,所以继承方法就不再学习,找出List中新特有的方法即可。

void add(int index, E element)
将指定的元素插入此列表中的指定位置(可选操作)。
boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。
E get(int index)
返回此列表中指定位置的元素。
int indexOf(Object o)
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
int lastIndexOf(Object o)
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
ListIterator listIterator()
返回列表中的列表迭代器(按适当的顺序)。
ListIterator listIterator(int index)
从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。
E set(int index, E element)
用指定的元素(可选操作)替换此列表中指定位置的元素。
default void sort(Comparator<? super E> c)
使用随附的 Comparator排序此列表来比较元素。
default Spliterator spliterator()
在此列表中的元素上创建一个Spliterator 。
List subList(int fromIndex, int toIndex)
返回此列表中指定的 fromIndex (含)和 toIndex之间的视图。

源码分析

// 将一个集合的所有元素添加到当前集合的指定位置;
boolean addAll(int index, Collection<? extends E> c);

// 用指定的运算结果替代集合中的所有元素
default void replaceAll(UnaryOperator<E> operator);

// 用指定的 Comporator 对集合元素进行排序
default void sort(Comparator<? super E> c);

// 获取指定位置的元素
E get(int index);

// 将某个位置的元素替换为指定元素
E set(int index, E element);

// 将指定元素添加到集合的指定位置
void add(int index, E element);

// 移除指定位置的元素
E remove(int index);

// 某个元素在集合中(第一次出现)的位置
int indexOf(Object o);

// 某个元素在集合中最后一次出现的位置
int lastIndexOf(Object o);

// 返回元素的列表迭代器
// 相当于 list.listIterator(0)
ListIterator<E> listIterator();

// 返回元素的 listIterator(指定起始位置)
ListIterator<E> listIterator(int index);

// 获取集合的子集
List<E> subList(int fromIndex, int toIndex);

扩展

ListIterator
继承自Iterator,Iterator 接口是用于遍历集合元素的迭代器。二者关系如下:
在这里插入图片描述
Iterator 接口方法:

// 是否有更多元素
boolean hasNext();

// 返回迭代的下一个元素
E next();

// 从底层集合中删除此迭代器返回的最后一个元素(可选操作)
// 每次调用 next() 时只能调用一次此该方法
default void remove();

// 对剩余的每个元素执行给定的操作
default void forEachRemaining(Consumer<? super E> action);

ListIterator,列表的迭代器,继承自 Iterator,可以从列表的两端进行遍历(Iterator 只能从前到后)。它在 Iterator 基础上增加方法如下:

// 是否有前一个元素(可理解为从后往前遍历)
boolean hasPrevious();

// 获取前一个元素
E previous();

// 返回对 next() 的后续调用将返回的元素的索引
// 如果列表迭代器位于列表的末尾,则返回列表大小
int nextIndex();

// 返回对 previous() 的后续调用将返回的元素的索引
// 如果列表迭代器位于列表的开头,则返回 -1
int previousIndex();

// 用指定的元素替换 next() 或 previous() 返回的最后一个元素
void set(E e);

// 插入指定元素到列表中
void add(E e);

List源码较为简单,List的相关实现后续学习补充。

SAP ABAP BAPI_PRODORD_CHANGE:动态刷新PP主数据的实战解析 本文深入解析了在SAP ABAP开发中,如何利用BAPI_PRODORD_CHANGE函数实现生产订单PP主数据的动态刷新。针对CO02事务码无法满足的后台自动化场景,详细讲解了通过设置explosion_date和explode_new等关键参数来强制重新读取BOM和工艺路线的实战方法,并提供了核心代码示例与避坑指南,确保生产订单信息与最新主数据同步。 阅读详情

相关推荐

Qupath软件的安装与使用

Qupath软件的安装与使用软件安装软件下载软件安装【windows版】简单使用文件打开人工标注标注导出和导入 Qupath是一款开源的医学图像标注软件,适合放射影像及数字病理切片等的查看。同时,其自带的标注功能使得医生可以直接通过该软件进行病变区域的标注和分类。跟进一步的,该软件提供groovy脚本运行接口,可供操作者编写和运行脚本,将标注信息转换为xml或者json格式的数据进行进一步的后序处...

qq_40662074的博客 3万+

add(int index, E element) 在列表的指定位置插入元素

void add(int index, E element) 在列表的指定位置插入指定元素(可选操作)。将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1)。参数: index - 要在其中插入指定元素处的索引 element - 要插入的元素 抛出: UnsupportedOperationException - 如果列表不支持 add 操作 ClassCas

博客 2132

IAR9.4报错之编码方式

IAR9.40编码方式错误导致的报错

qq_36081075的博客 2626

list集合 add(int index, E element) 方法的妙用

list集合 add(int index, E element) 方法的妙用 方法解释和妙用技巧 add(int index, E element) 将指定的元素插入此列表中的指定位置(可选操作)。 将当前在该位置的元素(如果有)和任何后续元素右移(将其索引添加一个)。 参数: index-要插入指定元素的索引 element–要插入的元素 当你插入的元素的位置已经有元素的话,会将此位置已经存在的和后面的全部往后移动 如果你需要将数据每次插入到最前面,那么就可以add(0,element); 算法题举例

weixin_43558205的博客 2301

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7343

《UDS协议从入门到精通(UDS速查手册)》(完结撒花版)

专栏总目录,文中介绍了UDS协议相关的基础知识和一些术语,给出了详细介绍6大类26种服务的跳转目录。

车载系统攻城狮 9万+

JAVA容器系列一:LinkedList源码解读

LinkedList是一个实现了List接口和Deque接口的双端链表。 有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端。 LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以使用如下方式: List list=Collections.synchronizedList(new LinkedList(...)); ...

qq_34748010的博客 501

《AgentScope-Java 深入浅出教程》第2章 环境搭建与第一个智能体

创建// 【导入说明】/*** 时间相关工具类* 工具类是普通的 Java 类,通过注解声明为工具。* 智能体可以根据用户需求自动调用这些工具。*/// 【工具定义】获取当前时间@Tool(name = "get_current_time", // 工具名称:LLM 看到的名称description = "获取指定时区的当前时间" // 工具描述:帮助 LLM 理解何时使用// 【参数定义】// @ToolParam 的 name 属性是必需的!

步子哥的博客 417

ArrayList中add(E e)与add(int index,E element)实例

import java.util.ArrayList;import java.util.List;// ArrayList中add(E e)与add(int index,E element)实例public class TestList1 { public static void main(String[] args){  List list=new ArrayList();  //  list....

世范水晶 434

低功耗设计-Power Switch

power gating与power switch cell

m0_61544122的博客 1万+

全栈拆解华为乾崑 ADS 5:WEWA2.0智能体架构与安全风险场技术、实现多传感器全融合感知与主动安全预判、助力城市NOA/高速领航/全场景无人通行极致落地

华为乾崑ADS 5的核心颠覆性,不在于单一功能的小幅升级,而在于实现了自动驾驶从“工具式辅助驾驶”到“拟人化智能体驾驶”的全栈范式革命。通过WEWA 2.0端云协同AI智能体架构,解决了传统智驾决策僵硬、博弈能力弱、学习效率低的行业痛点;通过行业首发安全风险场技术,将自动驾驶安全体系从被动避险升级为主动预判,直接减半行车风险;通过乾崑OS专属车规系统底座,保障高阶智驾的低时延、高稳定、高可靠运行;通过多传感器超融合感知体系,实现全场景、全天候、无盲区的精细化环境理解。

getusushu的博客 288

java集合进阶--List中常见的方法和五种遍历方式

E remove(int index) 删除指定索引处的元素,返回被删除的元素。E set(int index,E element) 修改指定索引处的元素,返回被修改的元素。普通for:如果遍历的时候想操作索引,可以使用普通for循环。列表迭代器:在遍历的过程中需要添加元素,请使用列表迭代器。迭代遍历器:在遍历的过程中需要删除元素,请使用迭代器。的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。三、ListIterator介绍。

m0_73703409的博客 1473

TC3XX - MCAL知识点(三十三):基于EB Tresos配置Tc3xx的MCAL代码如何产生中心对称的三相六路发波波形

本文用于记录如何在英飞凌 tc3xx 芯片的应用开发中,借助 EB Tresos 配置工具生成的配置代码与 MCAL 源码相结合,进而实现三相六路中心对称互补的 PWM 输出效果。外部资源需求:EB Tresos23.0以上、Tasking\Hightec编译器、示波器\逻辑分析仪。

梦想技术家 1210

【Java学习】java集合类List

1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]; 2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]; 3. 所有的List中可以有null元素,例如[ tom,null,1 ]; 4. 基于Array的List(Vector,ArrayList)适合查询

lee_hust的专栏 608

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java集合类之List学习笔记

Java集合框架 文章目录Java集合框架1.集合框架1.1 概述1.2 框架体系1.2.1 体系总览1.2.2 框架总结2.Collection接口2.1 概述2.2 常用方法3.List集合3.1 概述3.2 常用方法3.3 ArrayList类4.3.1 概述4.3.2 构造方法4.3.3 成员方法3.4 LinkedList类4.4.1 概述4.4.2 构造方法4.4.3 成员方法3.5 ArrayList和LinkedList区别 1.集合框架 1.1 概述 引入:为了保存数量不确定的数据,以及

yalenlang_long的博客 1003

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java学习之集合类List、Set、Map

具体的关于ArrayList等实现类的介绍有时间再专门写篇文章,这里只是作简单介绍 集合类概述 集合类又被称为容器,和数组类似都能够存储一定的数据,但是又不一样。 常用的集合有List、Set、Map。其中接口List和Set继承了Collection接口,各接口还提供了不同的实现类。 在说常见集合之前,先提一下Collection类。Collection类是层次结构中的根接口。构...

秋水惊鸿的博客 389

Java集合类List、Set学习笔记

Java集合类Java集合框架URL图List 列表ArrayListArrayList的几个重要属性ArrayList的扩容机制、LinkedListLinkedList的几个重要属性构造器LinkedList 的内部实现针对List列表集合类,jdk还提供了一个特殊的迭代器ListIteratorArrayList, LinkedList 和 Vector 的区别集合类HashSet底层实现TreeSet底层实现HashMap 和 HashSet的区别 Java集合框架URL图 List 列表 接口L

cheendf的博客 222

java 集合只能保存对象_JAVA使用集合类保存对象,List集合类学习

Java中的集合对象就是一个容器,用来存放Java类的对象。我们知道,一种容器,例如水桶的水很方便倒入和取出。例如柜子里的衣服,有序摆放,更方便查找。Java的集合类也一样,不同的集合类和各自的作用!在Java.util包中提供了集合类,集合类又叫容器。在之前我们学习过数组,集合类不同于数组,数组长度固定,集合类长度可变,数组用来存放基本类型,集合用来存放对象的引用。常用的集合类有List集合,S...

weixin_39559486的博客 580

Day8_8 Java学习之List集合类

解析:1.List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。2.List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。3.List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。4.List 实现了 Collection 接口,它主要有两个常用的实现类:ArrayList 类和 LinkedList 类。5.List集合的长度可变,且其中的数据类型只能为引用类型。............

weixin_43717536的博客 2785

学习-Java集合类之List的LinkedList之特有方法的使用

LinkedList 是 List 集合的实现类,它的底层数据结构是链表,因此它具有查询慢,增删快的特点。

千浔的博客 936

java集合类(二)List学习

接上篇 java集合类(一) List接口继承了Collection接口和Iterable接口,即同样含有Collection和 Iterable的特性,还有方法,其基本方法有: 1)有关添加: boolean add(E e):添加元素 void add(int index,E element):在特定位置添加元素 boolean a...

weixin_34409703的博客 1122

学习-Java集合类之List的ArrayList之增删改查

本关任务:创建 ArrayList 集合并使用它的增删改查方法。接收给定的一行字符串,实现如下需求: 1.通过空格(一个)切割字符串;4.删除集合的第一个和最后一个元素;6.修改集合的第三个元素,改为:list;List 集合用于存储有序的、可以重复的元素,因此我们可以通过索引来访问、遍历元素。ArrayList 是 List 集合的实现类,它的底层数据结构是数组,因此它具有查询快,增删慢的特点。平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。遍历集合有三种方式: 1.使用迭代器遍历;

千浔的博客 2216

Java集合类—List学习笔记

List集合接口常用实现类(它们的区别)和相关工具

孙平平的博客 580

JAVA集合类概述

开始学JAVA集合类,从List开始学起!

海神 298

java初步学习集合类写的List小文档

Java核心技术集合类List小文档项目,主要是利用封装和集合编写的一个学生管理类。

qq_46586869的博客 109

Java集合类学习(二) List集合

1 ArrayList和LinkedList List集合的主要实现类有ArrayList和LinkedList。另外还包括栈和队列的实现类:Deque和Queue。 ArrayList的底层主要是数组实现,查找快增删慢。LinkedList的底层主要是双向链表实现,查找慢增删快。 1.1 ArrayList 在内存中分配连续的空间,实现了长度可变的数组 优点:遍历元素和随机访问元素的效率比较高,因为可以根据索引访问 缺点:添加和删除需大量移动元素效率低,按照内容查询效率低 1.2 Linke

A20212的博客 606
上一篇: Java集合类学习--Collection
下一篇: Java集合类学习--Set
CodersCoder
博客等级 码龄10年 90粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值