首页 > 解决方案 > 如何使用 java 流来检索 x 名称的值?

问题描述

如果列表中有 1 个条目,我可以使用下面的代码片段通过检索列表中的元素 0 来检索名称,但是,每个条目都NameResponse可以有多个名称(例如,名字、中间名和姓氏)。如何检索与一位客户关联的 x 个名称?为了争论,可能有 20 个名字。因为我使用的是 Java 8,所以我想使用流来实现,但我不确定如何实现。有什么建议么?

private List<String> getNames(Customer customer) {

    List<NameResponse> nameResponses = new ArrayList<>();
    NameResponse nameResponse = new NameResponse();
    nameResponse.setName("Test Name");
    nameResponses.add(nameResponse);
    customer.setNames(nameResponses);

    return List.of(customer.getNames().get(0).getName());
}

客户等级:

private List<NameResponse> names;

名称响应类:

private String name;

标签: javajava-8

解决方案


假设您有适当的吸气剂,如下所示:

return customer.getNames()
               .stream()
               .map(NameResponse::getName)
               .collect(Collectors.toList());

推荐阅读