1、使用工具类Arrays.asList()把数组转换为集合时,不能使用其修改集合相关的方法,他的add/remove/clear方法抛出UnsupportedOpertionException异常。
asList的返回对象是一个Arrays内部类,并没有是实现集合的修改方法。Arrays.asList实现适配器模式,知识转换接口,后台的数据任然是数组。
当修改数组中的数据,List也会跟着改变。
2、不要在foreach循环里进行元素的remove/add操作。
remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素条件) {
System.out.println(item);
}
}