简体   繁体   English

如何使用增强的 for 循环更改方法,该方法将方法调用返回到 Java 中的 Stream?

[英]How do i change a method with enhanced for-loop that returns a method call in to a Stream in Java?

I have a method called getBalance where I have an enhanced for loop and inside the loop I return customer.getBalance();我有一个名为getBalance的方法,其中我有一个增强的 for 循环,在循环内我返回customer.getBalance();

I now want to change that method in to a Stream from Java 8 and I can't figure out how to do it since you cannot return something inside a stream.我现在想将该方法更改为 Java 8 中的 Stream,但我不知道该怎么做,因为您无法在流中返回某些内容。

The method:方法:

public double getBalance(String personalNumber, int accountNumber) {

    for (Customer customer : customers) {
        if (customer.getPersonalNumber().equals(personalNumber)) {
            return customer.getBalance(accountNumber);
        }
    }
    return 0;
}

You can do that using filter and findFirst :您可以使用filterfindFirst来做到这一点:

return customers.stream()
        .filter(customer -> customer.getPersonalNumber().equals(personalNumber))
        .findFirst()
        .map(customer -> customer.getBalance(accountNumber))
        .orElse(0);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM