正确使用ArrayList的sublist()方法

这篇博客介绍了ArrayList的sublist()方法的使用,强调了返回的子列表是父列表的视图。内容包括:1) subList()返回ArrayList的内部类;2) '非结构性修改',如set()方法,会影响父子列表;3) '结构性修改',涉及size的改变,会反映到父列表并可能导致子列表失效。博客指出,父列表的修改可能会导致子列表变得不可用,建议避免这种影响,通过新建ArrayList来复制子列表。
摘要由CSDN通过智能技术生成

使用ArrayList的sublist()返回的是父list的视图,以下3点是摘自sublist的方法说明

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

1、sublist()返回的是ArrayList的内部类

如下图,进行类型转换编译报错

2、“非结构性修改”:不涉及到list的size改变的修改,父子list相互影响.

如下图sublist的set()方法不会改变list的size,把index=0的a变为aa,父list同样的a变为aa

3、“结构性修改”: 涉及size改变的修改子list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值