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

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

1.asList()方法

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

2.subList()

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

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

http://www.kler.cn/news/361082.html

相关文章:

  • PeptidesFunctionalDataset(helpers.dataset_classes文件中的lrgb.py)
  • 约克VRF打造舒适绿色无污染的生活环境
  • 基于Java+ssm的名著阅读网站
  • CSP-S模拟5复盘
  • 【计网】理解TCP全连接队列与tcpdump抓包
  • HCIP-HarmonyOS Application Developer 习题(十三)
  • 革新你的智能体验:AIStarter 3.1.1正式版现已上线【安全认证】ai应用市场,数字人,ai绘画,ai视频,大模型,工作流因有尽有
  • CZX前端秘籍2
  • WebGL编程指南 - 绘制和变换三角形
  • 计算机在我们生活中的应用
  • Go 切片的扩容规则是怎么样的
  • 【数据库】T SQL语句和SSMS有啥联系?
  • 学习鸿蒙Next 之路 http
  • JAVA继承和多态
  • 18.VScode写Java项目的教程
  • 使用ETL进行数据接入的方式
  • 深入探索LINUX中AWK命令:强大的文本处理工具
  • 后端常用安全措施
  • idea中,git提交时忽略某些本地修改.将文件从git暂存区移除
  • 使用GraphRAG系统实现本地部署的Ollama模型问答系统