Java преобразовать метод в лямбда-выражение - PullRequest
0 голосов
/ 07 мая 2020

как этот метод должен выглядеть в лямбда-выражении?

public Book returnBook(int idBook){
   for (Book b : records){
        if(b.getIdBook() == idBook){
            return b;
        }
    }

    return null;
}

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Версия потока в первую очередь будет состоять из filter + findFirst

return records.stream()
              .filter(book -> book.getIdBook() == idBook)
              .findFirst()
              .orElse(null);
0 голосов
/ 07 мая 2020

Если records - это Collection, сделайте это следующим образом:

public Book returnBook(int idBook) {
    return records.stream()
        .filter(book -> book.getIdBook() == idBook)
        .findFirst()
        .orElse(null);
}

Если records - массив, сделайте это следующим образом:

public Book returnBook(int idBook) {
    return Arrays.stream(records)
        .filter(book -> book.getIdBook() == idBook)
        .findFirst()
        .orElse(null);
}
...