Duk*_*dor 28 java collections exception
在研究CollectionAPI时,我们发现如果Collection的当前实现不支持这些功能,某些方法(add,remove...)可能会抛出java.lang.UnsupportedOperationException.
实际上,JDK中是否存在Collection不支持这些方法的具体内容?
非常感谢你的回答.
Pét*_*rök 28
除了Collections.unmodifiable*方法返回的集合之外,还有一些有趣的案例UnsupportedOperationException实际上被抛出:
Map,通过访问entrySet(),keySet()并且values()可以具有元件移除,但不添加,Arrays.asList可以包含既未添加也未删除的元素,Collections.empty*和Collections.singleton*方法获得的对象也被标记为"不可变",所以 - 虽然它没有在API文档中明确说明 - 我想这些也试图修改它们时抛出异常.Rut*_*war 14
通常在创建列表时List<String> sample=Collections.emptyList();.列表sample将创建为Collections.unmodifiableCollection().
因此列表示例不支持动态列表操作.您只能使用赋值运算符将另一个列表分配给此列表.例如>
List<String> ls=new ArrayList<String>();
ls.add("one");
ls.add("Three");
ls.add("two");
ls.add("four"); 
sample = ls;
对于动态列表操作,您应该具有类似的语法 
     List<String> sample= new ArrayList<String>();.在此列表中,您可以执行sample.add(), sample.addAll()等...
| 归档时间: | 
 | 
| 查看次数: | 30994 次 | 
| 最近记录: |