Я хочу сократить этот метод.Не могли бы вы сказать мне, как я могу это сделать?Я пытался как-то, но с плохим результатом.Books
длина списка неизвестна.Это может быть 10, но это также может быть 0.Мне нужно 3 книги, если они существуют.
public List<Book> findTheLatest3Books() {
List<Book> books = new ArrayList<>(bookRepository.findAllByOrderByDateOfCreation());
List<Book> listOf3LatestBooks = new ArrayList<>();
if (books.size() >= 3) {
for (int i = 0; i < 3; i++) {
if (books.get(i).isAvailable()) {
listOf3LatestBooks.add(books.get(i));
}
}
}
if (books.size() == 2) {
for (int i = 0; i < 2; i++) {
if (books.get(i).isAvailable()) {
listOf3LatestBooks.add(books.get(i));
}
}
}
if (books.size() == 1) {
for (int i = 0; i < 1; i++) {
if (books.get(i).isAvailable()) {
listOf3LatestBooks.add(books.get(i));
}
}
}
if (books.size() == 0) {
throw new IllegalArgumentException("No books in DB");
}
return listOf3LatestBooks;
}