Lambda Java8中使用streams的map方法中的多个操作
给定客户列表,我需要创建另一个以大写字母显示客户名字的列表。这是java中的代码-Lambda Java8中使用streams的map方法中的多个操作,lambda,java-8,Lambda,Java 8,给定客户列表,我需要创建另一个以大写字母显示客户名字的列表。这是java中的代码- List<String> getFirstNames(List<Customer> customers) { List<String> firstNames = new ArrayList<>(); for(Customer customer: customers) { firstNames.add(StringUtils.upper
List<String> getFirstNames(List<Customer> customers)
{
List<String> firstNames = new ArrayList<>();
for(Customer customer: customers) {
firstNames.add(StringUtils.uppercase(customer.getFirstName());
}
return firstNames;
}
但是,如何使用此函数将firstName转换为大写?最简单的方法是编写自己的lambda表达式,以便将firstName转换为大写:
List<String> firstNames = customers.stream()
.map(customer->StringUtils.uppercase(customer.getFirstName()))
.collect(Collectors.toList());
List firstname=customers.stream()
.map(customer->StringUtils.uppercase(customer.getFirstName()))
.collect(Collectors.toList());
即使在您的代码中,您也要记下客户的姓名,然后再进行案例分析
List<String> firstNames = customers.stream()
.map(customer-> customer.getFirstName())
.map(firstName -> StringUtils.uppercase(firstName))
.collect(Collectors.toList())
List firstname=customers.stream()
.map(customer->customer.getFirstName())
.map(firstName->StringUtils.uppercase(firstName))
.collect(收集器.toList())
方法引用customers.stream().map(Customer::getFirstName).map(StringUtils::uppercase).collect(toList())
有没有理由使用StringUtils.uppercase(customer.getFirstName())
而不是简单地使用customer.getFirstName().toUpperCase()
?@SotiriosDelimanolis我们不应该像答案一样在一行中完成,而不是在两次迭代中完成?
List<String> firstNames = customers.stream()
.map(customer-> customer.getFirstName())
.map(firstName -> StringUtils.uppercase(firstName))
.collect(Collectors.toList())