3

所有 Java 都Collection实现Iterable了,因此它们必须提供一个Iterator,它指定一个可选方法remove()。当在remove()上调用时Iterator,它可以抛出一个UnsupportedOperationException

我如何知道CollectionJava 标准库中的 a 是否会在不运行代码的情况下返回Iterator支持的?remove()

当然,我希望这些信息出现在remove()类方法的 Javadoc 中,结果却发现了一堆超类和接口的链接。例如:http ://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html#iterator——我也没有找到任何关于链接的说明。

4

2 回答 2

4

没有办法事先知道这一点。除非它被正确记录,remove()支持或不支持(坦率地说,即使它“正确”记录),你唯一确定的方法就是尝试。

于 2015-02-07T08:00:06.287 回答
0

数据结构的选择取决于您打算支持的内容,因此当您开始使用它时,作为开发人员的您已经知道底层实现是否支持删除。

如果实际实现不符合您的假设/理解,则会引发异常。

于 2015-02-07T08:03:56.450 回答