Как вывести новый масив

169
24 декабря 2021, 16:20

Как вывести новый масив из елементов в блоке if? Нужно вывести масив из отобраных объектов.

public class BookModel {
private Book[] books;
public BookModel() {
    books = DataSourceBooks.getArray();
}
public Book[] getBooks() {
    return books;
}

public Book[] getSpecificBook(String s) {
    Book[] newBooks;
    for (Book book : books) {
        if (s.equalsIgnoreCase(book.getAuthor()) ||
                s.equalsIgnoreCase(book.getPublisher())) {
        }
    }
    return newBooks;
}
public Book[] getSpecificBook(int year) {
    for (Book book : books) {
        if (book.getYear() >= year) {
        }
    }
    return
}
public Book[] sortShape() {
    Book[] newBook = Arrays.copyOf(books, books.length);
    Arrays.sort(newBook, new SortByPublisher());
    return newBook;
}

}

Answer 1

С помощью стримов легко:

public Book[] getSpecificBook(String s) {        
    return Arrays.stream(books)
            .filter(s->s.equalsIgnoreCase(book.getAuthor()) || s.equalsIgnoreCase(book.getPublisher()))
            .toArray(Book[]::new);
}

это проще, как и проще переписать этот метод

public Book[] sortShape() {
    return Arrays.stream(books)
            .sorted(new SortByPublisher())
            .toArray(Book[]::new);
}

Можно и так (без стримов тоже жили)

public Book[] getSpecificBook(int year) {
    List<Book> booksList = new ArrayList<>();
    for (Book book : books) {
        if (book.getYear() >= year) booksList.add(book);
    }
    return booksList.toArray(new Book[booksList.size()]);
}
READ ALSO
Как выделяется память под объекты в java

Как выделяется память под объекты в java

В куче выделяется место под объект,хранится ссылка на него, это я понимаю как устроено, а вот при наследовании как это происходит? В начале...

90
Метод save() не принимает ArraysList элементов?

Метод save() не принимает ArraysList элементов?

Используя одну из старых версий spring-data-jpa 111

103
Как вставить собственный класс в БД

Как вставить собственный класс в БД

Написал свой класс в postgres

90
Не работает JMenu

Не работает JMenu

Я решил создать JMenuЯ полазил в настройках, все сделал, но когда я нажимаю на меню оно не работает

91