泛型List的一点建议

使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。

泛型通配符<? extends T>来接收返回的数据,此写法的泛型集合不能使用add方 法,而<? super T>不能使用get方法,做为接口调用赋值时易出错。 说明:扩展说一下PECS(Producer Extends Consumer Super)原则:

l  频繁往外读取内容的,适合用<? extends T>。

l  经常往里插入的,适合用<? super T>。

不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。

原文地址:https://www.cnblogs.com/austinspark-jessylu/p/13157678.html