【问题标题】:How to map values from List<String> into a List<Model>如何将 List<String> 中的值映射到 List<Model>
【发布时间】:2022-11-10 13:28:16
【问题描述】:

我正在练习 Java 8 功能,但遇到了一个我无法解决的问题:

我有一个字符串列表我需要映射成客户名单, 这字符串列表只有客户的名字,但是客户模型还有其他属性:

 public class Customer {
    private int id{get; set;};
    private String name{get; set;};
    private String company{get; set;};
}

public static List<Customer> convertList() { 

    List<Customer> customerList = new ArrayList<Customer>();
    
    List<String> nameList = new ArrayList<String>();
    nameList.add("Customer A");
    nameList.add("Customer B");
    nameList.add("Customer C");
    nameList.add("Customer D");
    nameList.add("Customer E");
    nameList.add("Customer F");
    
    return customerList.stream()
                       .map()//here I got stuck
                       .collect(Collectors.toList()); 
}

我想要做的是将 List 的值设置为 List 的 Name 属性,我尝试使用流和映射,但不知道如何在这种情况下使用它。

【问题讨论】:

    标签: arraylist java-8 java-stream


    【解决方案1】:
    List<Customer> customerList = nameList.stream().map(name -> {
         Customer c = new Customer();
         c.setName(name);
         c.setId(generateId());
         c.setCompany(getCompany(name));
         return c;
    }).collect(Collectors.toList());
    

    您需要将nameList 映射到customerList,因此,您应该在nameList 上进行流式传输并将其转换为customerList,而不是相反。 接下来,如果在map() 操作期间需要的话,您需要弄清楚如何使用一些外部方法/服务来获取诸如 id、公司等的附加信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2017-03-22
      • 2017-11-25
      • 2018-12-07
      • 2022-12-17
      相关资源
      最近更新 更多