Есть некоторая коллекция bookcase:
package BookManager;
import java.util.ArrayList;
import java.util.Scanner;
public class BookCase {
ArrayList<Book> books;
BookCase() {
books = new ArrayList<>();
}
void addBook(String bookName, String author) {
Book book = new Book(bookName, author);
books.add(book);
}
ArrayList<Book> showBooks() {
System.out.println("Список книг: ");
return books;
}
ArrayList<Book> findBook(String input) {
ArrayList<Book> findBookList = new ArrayList<>();
for (Book book : books) {
if ((input.equals(book.name)) | (input.equals(book.writer))) {
findBookList.add(book);
}
}
return findBookList;
}
void showBookInfo(String input) {
ArrayList<Book> showInfoBook = findBook(input);
for (Book book : showInfoBook) {
System.out.println("Название книги: " + book.name + " Писатель: " + book.writer);
}
}
void delBook(String input) {
for (Book book : books) {
if ((input.equals(book.name)) | (input.equals(book.writer))) {
books.remove(book);
System.out.println("Книга удалена");
break;
} else {
System.out.println("Нет такой книги.");
break;
}
}
}
}
Другой класс:
package BookManager;
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
Scanner scanner;
BookCase bookCase;
public Menu(BookCase bookCase) {
scanner = new Scanner(System.in);
this.bookCase = bookCase;
}
void offerMenu() {
int userInput;
do {
listOptions();
System.out.println();
System.out.println("Выберите опцию:");
System.out.println();
userInput = scanner.nextInt();
scanner.nextLine();
processing(userInput);
}
while (userInput() != 7);
System.out.println("Работа завершена.");
}
int userInput() {
int userInput;
while (true) {
if (scanner.hasNextInt()) {
userInput = scanner.nextInt();
scanner.nextLine();
break;
} else {
scanner.nextLine();
}
}
return userInput;
}
String inputBookTitleAuthor() {
System.out.println("Введите автора/название: ");
String userStringInput = scanner.nextLine();
return userStringInput;
}
void listOptions() {
System.out.println("Выберите опцию менеджера книг: ");
System.out.println("1 -
посмотреть список книг");
System.out.println("2 - поиск книги");
System.out.println("3 - информация по книге");
System.out.println("4 - добавить книгу");
System.out.println("5 - удалить книгу");
System.out.println("0 - для выхода в основное меню");
System.out.println("7 - выход");
}
private void processing(int userInput) {
switch (userInput) {
case 1:
menuShowBooks();
break;
case 2:
menuFindBook();
break;
case 3:
bookInfo();
break;
case 4:
menuAddBook();
break;
case 5:
menuDelBook();
break;
case 0:
break;
case 7:
return;
}
}
void bookInfo() {
System.out.println("Введите название/автора книги для поиска: ");
String bookName = scanner.nextLine();
bookCase.showBookInfo(bookName);
}
void menuFindBook() {
System.out.println("Введите название/автора книги для поиска: ");
String bookName = scanner.nextLine();
System.out.println(bookCase.findBook(bookName));
}
/**
* Вопрос в работе метода ниже
* метод выводит список книг в формате списка, т.е. в строку
* [Автор 'пушкин', наименование книги: ' сказки'}, Автор 'непушкин', наименование книги: ' несказки'}, Автор 'гоголь', наименование книги: ' нос'}]
*/
void menuShowBooks() {
for (BookCase book : bookCase ) {
System.out.println(book);
}
}
void menuAddBook() {
System.out.println("Введите автора: ");
String bookName = scanner.nextLine();
System.out.println("Введите название:");
String author = scanner.nextLine();
bookCase.addBook(bookName, author);
System.out.println("Добавлено в библиотЭку");
}
void menuDelBook() {
System.out.println("Введите название/автора книги для удаления: ");
String bookName = scanner.nextLine();
bookCase.delBook(bookName);
}
}
Вопрос:
Каких и где строк не хватает, чтобы в методе menuShowBooks с помощью foreach вывести все объекты ПОСТРОЧНО Сейчас в данном методе bookcase подчеркнут красным, но что за ошибка я не понимаю. Точнее я догадываюсь, что это переменная НЕмассива, но как исправить пока не понимаю.
bookCase
в вашем случае это экземпляр класса, у которого имеется переменная books
.
for (Book book : bookCase.books) {
System.out.println(book);
}
Приложение разрабатывается и тестируется на хосте под Windows и должно запускаться в контейнере DockerСоответственно в Docker-compose запускается отдельный...
C клавиатуры вводится "Hello", по почему-то выдает false,хотя вроде бы строки равны
Создаю приложение, которое каждый день даёт заданияЗадание даётся раз в 24 часа
Для вывода трёхмерного пространства необходимо таким образом заполнить массив, вроде как лёгкое дело, но мне в районе x[i],y[j],z[i][j] выводит ошибку: