原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。
前言:
如果你现在正急于解决问题,请立刻、马上拉到本篇最后的【总结】,进入“不废话环节”。
通过本篇的学习,你将全面掌握 List,Set 和数组间相互转换的方式,还会规避很多 Arrays 方法常见的坑。
Java 集合的创建方法,不要只知道 new ArrayList() 啦,请看我另一篇博文:https://jiming.blog.csdn.net/article/details/110443166
一、码出高效:
集合是开发中需要修改最多的地方,如:从数据库中取出多条数据是 List<E> 结构,然后需要在 Service 进行层层处理,最终为前端展示提供 vo 对象,所以,很多集合使用的规范一定要弄明白。
代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。
1.【强制】ArrayList 的 subList 结果不可强转成 ArrayList,否则会抛出 ClassCastException 异常;
说明:subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList 而是 ArrayList的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。
2.【强制】ArrayList 的 subList 场景中,高度注意对原集合元素的增加或删除,均会导致子列表的遍历、增加、删除产生 ConcurrentModificationException 异常;
说明:subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList 而是 ArrayList 的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。
3.【强制】使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一样的数组,大小就是