Collections.singleton()在进行remove操作时抛出UnsupportedOperationException异常原因
- 这个方法主要用于只有一个元素的优化,减少内存分配,无需分配额外的内存。返回一个只读的Set集合,这个集合是Collections的内部类,继承了AbstractSet,AbstractSet中有removeAll方法,但是singleSet的迭代器实现的时候对remove方法抛了异常。
- 该类没有提供add方法
- 类似的还有Collections的一系列sinletonList、SingletonMap等方法。
-
- AbstractSet只有equals、hashCode和removeAll方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190820113350648.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjE3Nzg5Ng==,size_16,color_FFFFFF,t_70)
- Arrays.asList方法返回的集合,继承了AbstractList,但是没有重写add和remove方法,父类中的该方法,均抛出异常
-![在这里插入图片描述](https://img-blog.csdnimg.cn/20190820114425239.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjE3Nzg5Ng==,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)