Java 列表迭代器是否支持删除?

Java 列表迭代器是否支持删除?,java,list,iterator,Java,List,Iterator,remove方法在和ListIterator中是可选的。从JDK列表中获得的迭代器或列表迭代器是否实现了删除操作?文档中没有说明这一点。文档确实说明迭代器的默认实现不支持。Listiterator是否支持删除取决于列表实现。例如,ArrayList实现中定义的ListItr支持删除。文档确实说明迭代器的默认实现不支持删除。Listiterator是否支持删除取决于列表实现。例如,ArrayList实现中定义的ListItr支持删除。实际上,回答这个问题很有意思。Java在迭代器之后有着悠久的历史

remove方法在和ListIterator中是可选的。从JDK列表中获得的迭代器或列表迭代器是否实现了删除操作?文档中没有说明这一点。

文档确实说明迭代器的默认实现不支持。Listiterator是否支持删除取决于列表实现。例如,ArrayList实现中定义的ListItr支持删除。

文档确实说明迭代器的默认实现不支持删除。Listiterator是否支持删除取决于列表实现。例如,ArrayList实现中定义的ListItr支持删除。

实际上,回答这个问题很有意思。Java在迭代器之后有着悠久的历史。让我告诉你历史,那么,事情为什么会这样就很清楚了

在迭代器之前,java拥有枚举接口。提供的枚举方法有:

布尔元素 对象连接 现在,像Vector这样的java遗留类支持枚举

但是,枚举在Java中被禁止,而Java开始以一种全新的方式编写其集合框架,即使其集合框架现代化。现在,在新的集合中,java使用了迭代器。这些迭代器支持以下方法:

布尔hasnet E下一个 默认无效删除
默认的void forEachRemainingConsumer实际上,回答这个问题很有趣。Java在迭代器之后有着悠久的历史。让我告诉你历史,那么,事情为什么会这样就很清楚了

在迭代器之前,java拥有枚举接口。提供的枚举方法有:

布尔元素 对象连接 现在,像Vector这样的java遗留类支持枚举

但是,枚举在Java中被禁止,而Java开始以一种全新的方式编写其集合框架,即使其集合框架现代化。现在,在新的集合中,java使用了迭代器。这些迭代器支持以下方法:

布尔hasnet E下一个 默认无效删除 默认void forEachRemainingConsumer总结:

ArrayList.iterator支持删除,即使它没有明确的文档记录 即使未明确记录,LinkedList.iterator也支持删除 不支持删除 集合返回的列表。不可修改列表不支持删除 标准类的经验法则似乎是:迭代器支持删除,除非有充分的理由不支持删除。

总之:

ArrayList.iterator支持删除,即使它没有明确的文档记录 即使未明确记录,LinkedList.iterator也支持删除 不支持删除 集合返回的列表。不可修改列表不支持删除
标准类的经验法则似乎是:迭代器支持删除,除非有充分的理由不这样做。

标准库中的一些迭代器支持删除。有些则不然。Java迭代器接口在这方面可以说是有缺陷的。@khelwood我特别询问您从ListSome迭代器标准库支持中获得的迭代器。有些则不然。Java迭代器接口在这方面是有争议的。@khelwood我特别询问您从列表中获得的迭代器