[英]How to know whether Iterator of a Collection supports remove()?
所有Java Collection
实现了Iterable
,因此它们必须提供一个Iterator
,它指定一个可选的方法remove()
。 在Iterator
上调用remove()
,它会抛出UnsupportedOperationException
。
如何知道Java标准库中的Collection
是否会返回支持remove()
的Iterator
而不运行代码?
当然我希望这些信息位于类的remove()
方法的Javadoc中,而是找到一堆指向超类和接口的链接。 例如: http : //docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html#iterator--我也没有找到关于链接的任何澄清说明。
没有办法知道这个事前。 除非正确记录remove()
是否支持(坦率地说,即使它是 “正确”记录的),您唯一可以确定的方法是尝试。
数据结构的选择取决于您打算支持的内容,因此当您使用它时,您作为开发人员已经知道底层实现是否支持删除。
如果实际实现不符合您的假设/理解,则会抛出异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.