Вы можете просто решить вашу проблему, используя stream
в java 8, поэтому вместо array
вы можете использовать List
, тогда вы должны stream it, init это и, наконец, сортировка книг по их title
.
В сумме
1 - создание объектов Book (то же самое) как ваш)
2- Создать список книг (вместо массива)
3- Stream bookList, Init каждый объект книги, затем Сортировать их на основе заголовка
4 - Распечатать результат
Я кодировал ваш сценарий следующим образом
public static void main(String[] args) {
//Create Book Objects
Scanner sc = new Scanner(System.in);
Book b1 = new Book();
Book b2 = new Book();
Book b3 = new Book();
//Create BookList
List<Book> bookList = new ArrayList<>();
bookList.add(b1);
bookList.add(b2);
bookList.add(b3);
//Stream bookList, Init Books, Sort them based on the title
bookList.stream().peek(book -> {
//Init book objects (id , folder , title , pages)
book.id = sc.nextInt();
sc.nextLine();
book.folder = sc.next();
sc.nextLine();
book.title = sc.next();
sc.nextLine();
book.pages = sc.nextInt();
}).sorted(Comparator.comparing(book -> book.title)).collect(Collectors.toList());
//Print results
bookList.forEach(book -> {
System.out.println(book.title);
});
}