将集合转换为数组的最简单方法?

新手上路,请多包涵

假设我们有一个 Collection<Foo> 。将其转换为 Foo[] 的最佳方法(在当前上下文中 LoC 中最短)是什么?允许使用任何 众所周知的 库。

UPD:(本节还有一个案例;如果您认为值得为其创建另一个线程,请发表评论):如何将 Collection<Foo> 转换为 Bar[] 其中 Bar 具有带有 1 个类型参数的构造函数 Foopublic Bar(Foo foo){ ... }

原文由 Roman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 352
2 个回答

其中 x 是集合:

 Foo[] foos = x.toArray(new Foo[x.size()]);

原文由 user319799 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Java 8 更新问题的替代解决方案:

 Bar[] result = foos.stream()
    .map(x -> new Bar(x))
    .toArray(size -> new Bar[size]);

原文由 Jules 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题