使用Lambda将对象列表转换为String []

sil*_*b78 0 java lambda

如果我有一个示例类User的列表(如下所示),是否可以使用lambda一行为列表中的所有名称创建String数组?

class User{
  String name;
  int id;
}
Run Code Online (Sandbox Code Playgroud)

khe*_*ood 5

是。鉴于List<User> users

String[] names = users.stream().map(user -> user.name).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)

那就是“流式传输用户,获取每个用户的名称,并将其放入新的String数组中”。

如果您UsergetName()方法,那么它将是:

String[] names = users.stream().map(User::getName).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)