【发布时间】:2013-05-03 05:23:48
【问题描述】:
我想用一个 Iterable 在 Java 中初始化一个集合实现 (HashSet)。但是,HashSet 的构造函数不接受 Iterables,而只接受 Collections 类型的对象。
有没有办法从 Iterable 转换为 Collections 的某些子类型。
【问题讨论】:
-
我认为问题本身已经足够不同(因为一个是有序集合),或者另一个问题不够笼统,无法同时支持有序和无序。
-
好吧,链接副本通过提供“一种从 Iterable 转换为 Collection 的某些子类型的方法”来回答所提出的字面问题。但是,我同意这(构造一个临时的
ArrayList)不一定是从Iterable初始化HashSet的最佳方式。 -
如果你在类路径上有 Spring Data,你可以使用
Streamable.of(iterable).toSet()。如果 Spring Data 恰好是Iterable的来源,您还有更多选择:stackoverflow.com/a/67413334/66686