Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
方法迭代器()在java.util.Collection和java.lang.Iterable的超级接口中声明?_Java_Collections - Fatal编程技术网

方法迭代器()在java.util.Collection和java.lang.Iterable的超级接口中声明?

方法迭代器()在java.util.Collection和java.lang.Iterable的超级接口中声明?,java,collections,Java,Collections,有人能给我解释一下为什么方法是迭代器()吗在java.util.Collection中定义?集合已经扩展了java.lang.Iterable;这种方法是多余的。这是为了方便吗?在Java 1.2中引入了集合API。当时出现了迭代器方法。然而,直到Java1.5才引入。Collection明确定义iterator的原因是它早于Iterable。Collection返回一个迭代器的想法早于Iterable好吧,为什么在java1.5中它没有从集合中删除?它是否不向后兼容?在进行Collection

有人能给我解释一下为什么方法是迭代器()吗
java.util.Collection
中定义?集合已经扩展了
java.lang.Iterable
;这种方法是多余的。这是为了方便吗?

在Java 1.2中引入了集合API。当时出现了
迭代器
方法。然而,直到Java1.5才引入。
Collection
明确定义
iterator
的原因是它早于
Iterable
Collection
返回一个
迭代器的想法早于
Iterable

好吧,为什么在java1.5中它没有从集合中删除?它是否不向后兼容?在进行
Collection
扩展新的
Iterable
接口时,没有理由将其从
Collection
中删除。删除它将破坏向后兼容。也就是说,人们在1999年编写的程序使用了
Iterator i=myList.Iterator()
。从接口中删除该方法将导致这些程序停止编译。JDK中保留了大量旧代码,以便继续支持在早期版本的Java中开发的用户应用程序。每当Java团队发布新设计时,他们通常会将以前的代码标记为“已弃用”,因此在编译时,您将看到一条警告,提示您正在使用的代码不再推荐。您甚至可以使用@Deprecated annotation()。@IlyaK自己弃用代码。可以说,他们删除它并不是为了遵循(Java工程师喜欢保持向后兼容性)。