【问题标题】:Java: Collections.list for iterator / iterableJava:用于迭代器/可迭代的 Collections.list
【发布时间】:2010-09-30 14:58:19
【问题描述】:

为什么java.util.Collections.list 仅适用于Enumeration 而不适用于Iterator(或Iterable)?或者为什么Iterator(或Iterable)没有这个函数的重载?有没有其他方法可以做到这一点?有什么原因吗?

【问题讨论】:

标签: java list collections


【解决方案1】:

还没有人真正回答,所以我开始了:

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

【讨论】:

    【解决方案2】:

    来自 JavaDoc:

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

    如果您有一个 Collection 并希望基于该集合创建新 List,您可以使用构造函数或 addAll() 方法。这个方法有点像集合框架提供的适配器。

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

    【讨论】:

    • 是的,但为什么Iterator或Iterable没有功能?
    • 我知道我可以做些什么来解决这个问题。但我的问题与此无关。它是关于:如果Enumeration有一个功能,为什么还没有这个功能?
    • @Albert - 我反过来问:他们为什么要实现 list 方法呢?通常在如此突出的实用程序类中不需要这样的专门方法。即使使用 java 1.4,也只需要 2-4 行代码。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2013-04-12
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2016-06-15
      • 1970-01-01
      • 2019-07-05
      相关资源
      最近更新 更多