繁体   English   中英

如何知道Collection的Iterator是否支持remove()?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM