use*_*426 8 java-8 java-stream
所以我有User类
User{
id
name
}
Run Code Online (Sandbox Code Playgroud)
我需要转换List<User>为使用流的数组,所以我正在做的一种方法是转换为列表然后转换为数组
coll.stream().map(am -> am.getId())
.collect(Collectors.<Integer>toList())
.toArray(new Integer[0])
Run Code Online (Sandbox Code Playgroud)
但我认为应该有另一种方法直接转换为数组而不是添加列表然后转换为数组.
Bye*_*Bye 11
你可以<A> A[] toArray(IntFunction<A[]> generator)在Stream中使用:
Integer[] ids = coll.stream()
.map(am -> am.getId())
.toArray(Integer[]::new)
Run Code Online (Sandbox Code Playgroud)
这将从流而不是列表创建数组.
除非有确凿的理由要收集到Integer[]您中,否则您可能正在寻找:
int[] ids = coll.stream()
.mapToInt(User::getId)
.toArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5091 次 |
| 最近记录: |