Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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:iterator/iterable的Collections.list_Java_List_Collections - Fatal编程技术网

Java:iterator/iterable的Collections.list

Java:iterator/iterable的Collections.list,java,list,collections,Java,List,Collections,为什么java.util.Collections.list仅用于枚举,而不用于迭代器(或Iterable)?或者为什么Iterator(或者Iterable)没有重载此函数?有没有其他方法可以做到这一点?有什么原因吗?来自JavaDoc: 返回一个数组列表,其中包含指定枚举返回的元素,其顺序与枚举返回的元素的顺序相同。此方法提供返回枚举的旧式API与需要集合的新API之间的互操作性 如果您有一个集合并希望基于该集合创建新列表,则可以使用构造函数或addAll()方法。此方法类似于集合框架提供的适

为什么
java.util.Collections.list
仅用于
枚举
,而不用于
迭代器
(或
Iterable
)?或者为什么
Iterator
(或者
Iterable
)没有重载此函数?有没有其他方法可以做到这一点?有什么原因吗?

来自JavaDoc:

返回一个数组列表,其中包含指定枚举返回的元素,其顺序与枚举返回的元素的顺序相同。此方法提供返回枚举的旧式API与需要集合的新API之间的互操作性

如果您有一个集合并希望基于该集合创建新列表,则可以使用构造函数或
addAll()
方法。此方法类似于集合框架提供的适配器


对于自定义iterables,您可以使用增强的For循环将迭代器返回的元素复制到现有列表中。

其目的是在返回枚举的旧API和需要集合的新API之间提供互操作性。

现在还没有人真正回答这个问题,所以我来:


当它介绍什么时,可能还没有
Iterable
。现在,它已经过时了(大多数
Collection
实现的构造函数提供相同的东西),只是为了向后兼容而保留在那里。

哪个Collections.list?它是
java.util.Collections
的一部分吗?是的,但是为什么没有用于
迭代器
Iterable的函数?我知道我可以做些什么来解决这个问题。但我的问题不是这个。这是关于:如果有一个函数用于
枚举
,为什么这个函数已经没有了?@Albert-我想问另一个问题:他们为什么要实现
列表
方法?在这样一个突出的实用程序类中,通常不需要这样一个专门的方法。即使使用Java1.4,也只需要2-4行代码。