将Java方法转换为lambda表达式

问题描述 投票:0回答:1

这个方法在lambda表达式中应该是什么样子的?

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

    return null;
}
java lambda stream
1个回答
2
投票

流媒体版本将主要由 filter + findFirst

return records.stream()
              .filter(book -> book.getIdBook() == idBook)
              .findFirst()
              .orElse(null);

0
投票

如果 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);
}
© www.soinside.com 2019 - 2024. All rights reserved.