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

sla*_*h90 -1 java java-8 java-stream

我有一个方法getBalance,其中我有一个增强的 for 循环,并在我返回的循环内customer.getBalance();

我现在想将该方法更改为 Java 8 中的 Stream,但我不知道该怎么做,因为您无法在流中返回某些内容。

方法:

public double getBalance(String personalNumber, int accountNumber) {

    for (Customer customer : customers) {
        if (customer.getPersonalNumber().equals(personalNumber)) {
            return customer.getBalance(accountNumber);
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

ern*_*t_k 5

您可以使用filterand做到这一点findFirst

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