平时最常用的莫过于<code>ArrayList</code>和<code>HashMap</code>了,面试的时候也是问答的常客。先不去管容量、负载因子什么的,就是简单的使用也会遇到坑。
<a></a>
经常遇到的一个场景是:遍历list, 然后找到合适条件的给删除掉,比如删除所有的偶数。
看起来好像没问题,加入面试的时候当面问:输出结果是什么?再问真不会报错吗?再问结果是什么?
报错
结果是空list
结果是[1, 2, 5]
[1, 3, 4]
报错: java.lang.UnsupportedOperationException
否,报错java.util.ConcurrentModificationException
报错: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
这是很好的习惯, 不像开头那样每次循环都计算一次size,而且按这种情况还可以再运行的时候报错。文初的做法不报错,但结果并不是我们想要的。
报错: java.util.ConcurrentModificationException
本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/java-arryalist-remove.html,如需转载请自行联系原作者