集合增强
并发修改 ConcurrentModificationException
并发修改 ConcurrentModificationException 错误是开发中一个常见错误,多发生在对一个 Collection 边遍历边做影响 size 变化的操作中,下面以 ArrayList 为例分析 ConcurrentModificationException 错误。
ArrayList 初始数据如下。
1 | List<Integer> list = new ArrayList<Integer>(); |
场景 1:不会有并发修改错误
1 | int length = list.size(); |
场景 2:会有并发修改错误
1 | for(int temp : list) { |
场景 3:会有并发修改错误
1 | Iterator<Integer> iterator = list.iterator(); |
场景 4:没有并发修改问题
1 | ListIterator<Integer> listIterator = list.listIterator(); |
其实 ConcurrentModificationException 异常的抛出是由于 checkForComodification(AbstractList 类中)方法的调用引起的。
1 | private void checkForComodification() { |
Java8 中 List 转 Map(Collectors.toMap) 使用技巧
Java8 中 List 转 Map(Collectors.toMap) 使用技巧 | 张振伟的博客 https://zhangzw.com/posts/20191205.html
参考
版权声明:本文为 CSDN 博主「wchicho」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/wchicho/article/details/51987992
ArrayList 的 toArray_weixin_30701575 的博客-CSDN 博客
https://blog.csdn.net/weixin_30701575/article/details/95004084
深入理解 List 的 toArray()方法和 toArray(T[] a)方法_一直在努力的小渣渣-CSDN 博客_toarray
https://blog.csdn.net/mucaoyx/article/details/86005283
Java 中 List 转换为数组,数组转 List - 低调的程序猿 - 博客园
https://www.cnblogs.com/jingnumber/p/7814092.html