ArrayList的subList方法

别再死记硬背了!用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率 本文深度解析如何使用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率(GTFP)。通过详细的模型选择对比、数据准备策略和MaxDEA操作流程,帮助研究者科学构建指标体系并准确解读结果,提升环境管理研究的实证分析能力。 阅读详情

 参考博文使用java.util.List.subList时最好小心点

List接口中定义:

List<E> subList(int fromIndex, int toIndex);

英文注释:

复制代码
Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the 
returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa.
The returned list supports all of the optional list operations supported by this list.
This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a
range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list: list.subList(from, to).clear(); Similar idioms may be constructed for indexOf and lastIndexOf, and all of the algorithms in the Collections class can be applied to a subList. The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via
the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in
progress may yield incorrect results.)
复制代码

根据注释得知:

1,该方法返回的是父list的一个视图,从fromIndex(包含),到toIndex(不包含)。fromIndex=toIndex 表示子list为空

2,父子list做的非结构性修改(non-structural changes)都会影响到彼此:所谓的“非结构性修改”,是指不涉及到list的大小改变的修改。相反,结构性修改,指改变了list大小的修改。

3,对于结构性修改,子list的所有操作都会反映到父list上。但父list的修改将会导致返回的子list失效。

4,tips:如何删除list中的某段数据:

list.subList(from, to).clear();

示例代码:

来自【Java每日一题】20170105,就是看到这个题目才让我知道list的这个方法我没有接触过

复制代码
package ques;  
  
import java.util.ArrayList;  
import java.util.List;  
  
public class Ques0105 {  
  
    public static void main(String[] args) {  
        List<String> list = new ArrayList<String>();  
        list.add("a");  
  
        // 使用构造器创建一个包含list的列表list1  
        List<String> list1 = new ArrayList<String>(list);  
        // 使用subList生成与list相同的列表list2  
        List<String> list2 = list.subList(0, list.size());  
        list2.add("b");  
  
        System.out.println(list.equals(list1));  
        System.out.println(list.equals(list2));  
    }  
}
复制代码

返回结果如下:

可以发现,list2为list的子list,当list2发生结构性修改(list2.add("b"))后,list也发生相应改变,所以返回结果为false和true

TIA博途WINCC的触摸屏VB脚本入门指南(嵌入式) 通过编写事件处理程序,您可以响应触摸屏元素的各种事件,并实现自定义的功能。本文将为您提供TIA博途WINCC触摸屏VB脚本的入门指南,帮助您了解基本的脚本编写和嵌入式开发。假设我们有一个名为"Button1"的按钮元素,当用户点击该按钮时,触发相应的事件处理程序,并在触摸屏上显示一条消息。然后回到触摸屏界面编辑器,在按钮元素的属性窗口中找到"按下"事件,并选择刚才创建的脚本文件作为事件处理程序。现在,当用户点击按钮时,触摸屏将执行相应的事件处理程序,并显示一条消息框,内容为"按钮被点击了! 阅读详情

相关推荐

Qwen-Image LoRA训练实战:从数据准备到异常修复的全流程解析

本文详细解析了Qwen-Image LoRA训练的全流程,从数据准备到参数优化再到异常修复。通过实战案例展示了如何利用LoRA技术微调Qwen-Image模型,提升中文场景下的图像生成质量,特别针对手脚生成异常等问题提供了有效解决方案。文章还分享了中文提示词优化技巧和高级训练方法,帮助开发者高效训练出高质量的LoRA模型。

lemon的博客 969

谨用ArrayList中的subList方法

在 subList 场景中,高度注意对原集合元素的增加或删除,均会导致子列表的遍历、增加、删除产生 ConcurrentModificationException 异常。SubList并没有重新创建一个List,而是直接引用原有的List,只不过对原来List做截取而已。subList返回的集合在调用add/remove方法时,会将modCount进行更新。注:更新操作只更新原集合,因为subList不会重新创建新集合。调用subList方法返回的集合保存了ArrayList的modCount。

IT枫斗者的博客 1602

PLDM入门(七):FRU Data Format

每个字段为TLV(Type-Length-Value)格式,具体类型、长度范围和值定义需参考。通过条件过滤(记录句柄、类型、字段类型等)分块获取FRU记录数据(可选功能)。整个FRU数据表由多个FRU记录数据块组成,每个数据块对应表2的结构(即包含。决定,每个字段按顺序排列(Type→Length→Value)通过分块传输方式写入FRU记录表数据(需终端支持写入操作)。(文档未提供表5内容,需结合标准文档完整版)。、字段数量、编码类型及具体字段的TLV数据)。无请求数据(空请求)。

weixin_44032634的博客 1764

正确使用ArrayList的sublist()方法

使用ArrayList的sublist()返回的是父list的视图,以下3点是摘自sublist的方法说明 sublist()返回的是ArrayList的内部类 “非结构性修改”:指不涉及到list的size改变的修改。如执行set()方法父子list都会受到影响,不会报异常,但会有数据使用错误的风险。 “结构性修改”: 涉及size改变的修改,子list的所有操作都会反映到父list上。但父list的修改将会导致返回的子list失效,子list后续操作报异常 1、sublist()返回的是ArrayLi

深藏功与名 2048

英飞凌TC3xx DSADC旋变软解码实战:从示波器波形到VX1000数据,手把手教你避坑

本文详细介绍了英飞凌TC3xx系列微控制器的DSADC模块在电机旋变软解码中的实战应用。从示波器波形分析到VX1000数据采集,提供了一套完整的调试方法论,帮助工程师快速定位和解决常见问题,提升解码精度和系统性能。

weixin_30598225的博客 517

【RT-DETR有效改进】轻量级网络ShuffleNetV2(附代码+修改教程)

从今天开始正式开始更新RT-DETR剑指论文专栏,本专栏的内容会迅速铺开,在短期呢大量更新,价格也会乘阶梯性上涨,所以想要和我一起学习RT-DETR改进,可以在前期直接关注,本文专栏旨在打造全网最好的RT-DETR专栏为想要发论文的家进行服务。RT-DETR剑指论文专栏,持续复现各种顶会内容——论文收割机RT-DETR​​。

Snu77的博客 1996

ArrayList 的 subList 方法:深入解析与注意事项

subList方法是ArrayList提供的一种便捷方法,用于获取原列表的一个子列表。subList其中,fromIndex是子列表的起始索引(包含),toIndex是子列表的结束索引(不包含)。subList方法返回一个List视图,表示原列表中从fromIndex到toIndex之间的元素。在 Java 编程中,ArrayList的subList方法提供了一种便捷的方式来获取原列表的子列表。然而,由于subList视图而非副本:对子列表的修改会直接影响原列表,反之亦然。并发修改异常。

xycxycooo的博客 2455

C#量化交易的市场数据采集与分析:从0到1构建你的‘数据雷达’——对比5大神器,代码实战全解析!

数据是量化交易的‘氧气’,而好的数据采集与分析是你的‘呼吸机’!本文5大神器+代码实战,总有一款适合你!(本文代码均经过测试,但请根据实际需求调整!

java专栏 734

Arrays.asList和ArrayList的subList用法注意事项

Arrays.asList添加删除元素报错等问题;ArrayList的subList子集合更新和原集合更新相互影响和报错问题

明豆的博客 1426

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

768

SAP ABAP 如何实现物料主数据接口的增量传输机制?

如何实现物料主数据接口的增量传输机制?我在各客户系统中看到了五花八门的实现方式,即使是 IBM 实施的开发质量也并没有保证。其实这是一个很简单的问题,下面以物料主数据接口为例子,介绍 SAP 中更改文档对象的接口数据增量传输机制。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1316

Arraylist的sublist方法分析

看到这样一道面试题,发现我对Arraylist的sublist方法了解的不够深 借助这次机会决定好好看看这个sublist方法 从源码解读 public List<E> subList(int fromIndex, int toIndex) { subListRangeCheck(fromIndex, toIndex, size); return ne...

shijiujiu33的博客 1095

Python爬虫实战:手把手教你园林植物分类全维度字典自动化采集实战!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 388

arraylist切割_Java ArrayList subList()方法

Java ArrayList subList()方法java.util.ArrayList.subList(int fromIndex, int toIndex) 方法用于截取位于给定范围内的所有元素。1 语法public List subList(int fromIndex, int toIndex)2 参数fromIndex:起始元素的索引。toIndex:结束元素的索引。3 返回值返回获取到...

weixin_28835583的博客 3831

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ArrayList.subList方法使用总结

ArrayList.subList方法使用总结 ArrayList.subList方法使用总结 示例 List&lt;String&gt; list=new ArrayList&lt;&gt;(); list.add("d"); list.add("33"); list.add("...

Frankltf的博客 453

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

为什么不建议用ArrayList的subList方法

List 的 subList 方法并没有创建一个新的 List,而是使用了原 List 的视图,这个视图使用内部类 SubList 表示。所以,我们不能把 subList 方法返回的 List 强制转换成 ArrayList 等类,因为他们之间没有继承关系。

我的博客 696

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

你真的会用ArrayList的subList方法吗?

导语 在日常的开发中通常会遇到截取List的情况,而大多数会选择使用subList方法进行截取,但是好多人对这个方法的理解都只是停留在使用层面上?这篇文章会非常详细达到源码级别的讲解sublList方法,需要的朋友赶紧收藏起来吧。 关于SubList 先通过下面这个例子,看看具体的返回类型: public class TestSubList { public static void main(String[] args) { ArrayList<String> list

偏偏爱吃梨的博客 2640

为什么要谨慎使用 ArrayList 的 subList 方法

作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。

smart_an的专栏 1002

java sublist 用法_Java ArrayList subList() 使用方法及示例

Java ArrayList subList() 使用方法及示例Java ArrayList subList()方法提取一部分arraylist并将其返回。subList()方法的语法为:arraylist.subList(intfromIndex,inttoIndex)subList()参数subList()方法有两个参数。fromIndex - 从中提取元素的起始位置toIndex - ...

weixin_34875640的博客 1499

ArrayList的subList方法带来的坑

最近在项目中遇到了一个问题,由一个对象序列化的结构,在反序列化时一直提示失败,真的百思不得其解啊。在对问题排查了好久之后,才发现是这个序列化的对象中的list调用了ArrayList的sublist方法存入导致的问题,真的是满满的坑,sublist还是要慎重使用的啊,下面详细介绍下sublist。 以下内容转自:ArrayList的subList方法 List接口中定义: List&lt...

weixin_30325487的博客 280

sublist方法_SubList到底怎么转化为ArrayList?

SubList大家好,今天Tony给大家讲个SubList转化的坑。这个错误真的会被忽略,大家好好的看看,这个错误我们生产环境还真的遇到过。集合类型相信大家都很熟悉,在Java中ArrayList使用的场景非常普遍。我们今天主要看的是ArrayList中的subList 方法。首先我们来看看源码 Returns a view of the portion of this list between ...

weixin_39611174的博客 575

原创 | 为什么阿里巴巴要求谨慎使用ArrayList中的subList方法

△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第219篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) 集合是Java开发日常开发中经常会使用到的。在之前的一些文章中,我们介绍过一些关于使用集合类应该注意的事项,如《为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作》、《为...

HollisChuang's Blog 1万+

java ArrayList中的subList方法

本文是笔者的学习笔记,把自己的理解总结记录下来。因笔者水平有限,如果您在阅读中发现错误,还望谅解,并且希望你告知笔者,不胜感激!ArrayList中的subList()方法ArrayList中的subList(int fromIndex, int toIndex)方法,是返回当前ArrayList中从索引为fromIndex的位置索引位置为toIndex-1的位置的列表 视图。这里需要注意几点:s...

qq_15118961的博客 7712

【JAVA】谨慎使用ArrayList中的subList方法

集合是Java开发日常开发中经常会使用到的。在之前的一些文章中,我们介绍过一些关于使用集合类应该注意的事项,如《为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作》、《为什么阿里巴巴建议集合初始化时,指定集合容量大小》等。 关于集合类,《阿里巴巴Java开发手册》中其实还有另外一个规定:  本文就来分析一下为什么会有如此建议?其背后的原理是什么? subList subList是List接口中定义的一个方法,该方法主要用于返回一个集合中的一段、可以理解为截取一个集合中的部分

qq_30885821的博客 1469

ArrayList类中的subList方法使用注意

ArrayList数组表的subList()方法截取的是同内存一个片段,在截取后返回新的ArrayList数组表增加、删减、排序,都会对原数组表产生影响! public class SubListTest { public static void main(String[] args){ List list = new ArrayList(); list.add("hello");

qiuhuimian的专栏 1万+

arraylist切割_ArrayList.subList方法的

在平时,需要取出集合中一部分数据时。通常会使用subList举个例子:List list=new ArrayList<>();list.add("d");list.add("33");list.add("44");list.add("55");list.add("66");List list2 = list.subList(0, 2);System.out.println(list....

weixin_31966185的博客 730
上一篇: 使用jQuery中trigger()方法自动触发事件
下一篇: Java迭代器(转)(iterator详解以及和for循环的区别)
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值