UnsupportedOperationException和ConcurrentModificationException
给自己看的:
写了一个测试然后同时出现了上面两个错误。
1.Arrays.asList构造出来的List实际上是一个Arrays的内部类ArrayList,该内部类继承AbstractList,并且没有重写父类的方法导致的。
2.ConcurrentModificationException是由于使用普通的遍历方式(不是迭代器),在进行remove()方法时,它会修改一个当前修改次数的值,但是获取值的时候会先进行一个当前修改次数和期望修改次数的比较,相同了才能取值,但由于期望修改次数没有变化,所以两者不等导致抛出异常。
用iterator方法可以是因为,该方法会在修改了当前修改次数后将修改次数赋值给期望修改次数。