集合相关:asList()和subList()方法的作用?

1.asList()方法

Arrays.asList(T... a)返回一个固定大小的列表,这个返回的列表的底层实现是一个final修饰的数组,其引用关系不能发生变化,并且它的大小也是固定的,可以修改和读取里面的元素值,但是不能添加或删除元素。否则会报UnsupportedOperationException异常。

2.subList()

List<Integer> list = new ArrayList<>(),先创建一个列表,List接口中的subList()方法用于获取当前列表的一个子列表 ,提取的这个子列表包含了从指定的起始位置(包含)到结束位置(不包含)之间的所有元素,子列表可以做增、删、改操作,相对的原列表中的那部分值,也会跟着变化,原列表也可以做修改操作,数据会同步变动,但是如果原列表做了新增和删除操作时,再次访问子列表时会报并发修改异常。subList()方法在对列表进行分割和部分操作时可以被用到。

java 复制代码
List<Integer> list = new ArrayList<>();
list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);
List<Integer> view = list.subList(1, 4);
System.out.println(view+"/"+list); //[2, 3, 4]/[1, 2, 3, 4, 5]
view.add(6666);
System.out.println(view+"/"+list); //[2, 3, 4, 6666]/[1, 2, 3, 4, 6666, 5]
view.remove(2);
System.out.println(view+"/"+list); //[2, 3, 6666]/[1, 2, 3, 6666, 5]
view.set(0,999);
System.out.println(view+"/"+list);//[999, 3, 6666]/[1, 999, 3, 6666, 5]
System.out.println("=======================");
//list.remove(0);  
// System.out.println(view+"/"+list); 访问view报错,ConcurrentModificationException
list.set(0,8888);
System.out.println(view+"/"+list); //[999, 3, 6666]/[8888, 999, 3, 6666, 5]
list.set(2,123);
System.out.println(view+"/"+list);// [999, 123, 6666]/[8888, 999, 123, 6666, 5]
//list.add(0,4444);
//System.out.println(view+"/"+list); 访问view报错,ConcurrentModificationException
相关推荐
克里斯蒂亚诺更新1 分钟前
myeclipse的pojie
java·ide·myeclipse
迷藏49419 分钟前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
迷藏49420 分钟前
**发散创新:基于Solid协议的Web3.0去中心化身份认证系统实战解析**在Web3.
java·python·web3·去中心化·区块链
qq_4335021822 分钟前
Codex cli 飞书文档创建进阶实用命令 + Skill 创建&使用 小白完整教程
java·前端·飞书
safestar201239 分钟前
ES批量写入性能调优:BulkProcessor 参数详解与实战案例
java·大数据·运维·jenkins
还在忙碌的吴小二1 小时前
Harness 最佳实践:Java Spring Boot 项目落地 OpenSpec + Claude Code
java·开发语言·spring boot·后端·spring
风吹迎面入袖凉1 小时前
【Redis】Redis的五种核心数据类型详解
java·redis
夕除1 小时前
javaweb--02
java·tomcat
ailvyuanj1 小时前
2026年Java AI开发实战:Spring AI完全指南
java
张np1 小时前
java进阶-Dubbo
java·dubbo