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

2022-08-31 08:02:51

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

UPD:(本节中还有一个案例;如果您认为值得为其创建另一个线程,请留下注释):如何转换为具有1个类型参数的构造函数的where,即 ?Collection<Foo>Bar[]BarFoopublic Bar(Foo foo){ ... }


答案 1

集合在哪里:x

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

答案 2

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

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