Я работаю над простой программой, которая читает текстовый файл, содержащий названия книг и соответствующий ссылочный номер. Каждый набор информации должен быть превращен в объект книги, чтобы впоследствии его можно было отсортировать. Однако в текущем коде, когда должна создаваться новая книга, она повторно использует оригинальную книгу. Я добавил счетчик класса Book для отслеживания количества объектов Book.ArrayList повторно использует один объект вместо создания новых
Программа должна создать новый объект книги, используя название книги и соответствующий ссылочный номер. Что я могу изменить/добавить, чтобы исправить эту проблему?
Основное Класс
private static ArrayList<Book> books = new ArrayList();
public static void main(String[] args) {
String path = "src//booklist.txt";
boolean endOfFile = false;
// try/catch for reading the file
try {
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
while (!endOfFile) {
String line = br.readLine();
if (line == null) {
endOfFile = true;
} else {
books.add(new Book(null, 0));
books.get(books.size() - 1).setRefNum(Integer.parseInt(line));
String bookTitle = br.readLine();
books.get(books.size() - 1).setTitle(bookTitle);
}
System.out.println(books.get(books.size() - 1).toString());
}
// Closing reader and displaying results
br.close();
} catch (IOException e) {
System.out.println(e.toString());
}
}
}
Книга Класс
private String bookTitle;
private int refNum;
private int numBooks;
public Book(String title, int referenceNumber) {
this.bookTitle = title;
this.refNum = referenceNumber;
this.numBooks++;
}
public String getTitle() {
return this.bookTitle;
}
public void setTitle(String title) {
this.bookTitle = title;
}
public int getRefNum() {
return this.refNum;
}
public void setRefNum(int referenceNumber) {
this.refNum = referenceNumber;
}
public int getNumBooks() {
return this.numBooks;
}
public String toString() {
String message = "Book Title: " + this.bookTitle
+ "\nReference #: " + this.refNum
+ "\nBook #: " + this.numBooks
+ "\n";
return message;
}
Текстовый документ (booktitles.txt)
1
The Adventures of Tom Sawyer
2
Huckleberry Finn
4
The Sword in the Stone
6
Stuart Little
10
Treasure Island
12
The Secret Garden
14
Alice's Adventures in Wonderland
20
Twenty Thousand Leagues Under the Sea
24
Peter Pan
26
Charlotte's Web
31
A Little Princess
32
Little Women
33
Black Beauty
35
The Merry Adventures of Robin Hood
40
Robinson Crusoe
46
Anne of Green Gables
50
Little House in the Big Woods
52
Swiss Family Robinson
54
The Lion, the Witch and the Wardrobe
56
Heidi
66
A Winkle in Time
100
Mary Poppins
Выходной ток
Book Title: The Adventures of Tom Sawyer
Reference #: 1
Book #: 1
Book Title: Huckleberry Finn
Reference #: 2
Book #: 1
Book Title: The Sword in the Stone
Reference #: 4
Book #: 1
Book Title: Stuart Little
Reference #: 6
Book #: 1
Book Title: Treasure Island
Reference #: 10
Book #: 1
Book Title: The Secret Garden
Reference #: 12
Book #: 1
Book Title: Alice's Adventures in Wonderland
Reference #: 14
Book #: 1
Book Title: Twenty Thousand Leagues Under the Sea
Reference #: 20
Book #: 1
Book Title: Peter Pan
Reference #: 24
Book #: 1
Book Title: Charlotte's Web
Reference #: 26
Book #: 1
Book Title: A Little Princess
Reference #: 31
Book #: 1
Book Title: Little Women
Reference #: 32
Book #: 1
Book Title: Black Beauty
Reference #: 33
Book #: 1
Book Title: The Merry Adventures of Robin Hood
Reference #: 35
Book #: 1
Book Title: Robinson Crusoe
Reference #: 40
Book #: 1
Book Title: Anne of Green Gables
Reference #: 46
Book #: 1
Book Title: Little House in the Big Woods
Reference #: 50
Book #: 1
Book Title: Swiss Family Robinson
Reference #: 52
Book #: 1
Book Title: The Lion, the Witch and the Wardrobe
Reference #: 54
Book #: 1
Book Title: Heidi
Reference #: 56
Book #: 1
Book Title: A Winkle in Time
Reference #: 66
Book #: 1
Book Title: Mary Poppins
Reference #: 100
Book #: 1
Желаемая Выход
Book Title: The Adventures of Tom Sawyer
Reference #: 1
Book #: 1
Book Title: Huckleberry Finn
Reference #: 2
Book #: 2
Book Title: The Sword in the Stone
Reference #: 4
Book #: 3
Book Title: Stuart Little
Reference #: 6
Book #: 4
Book Title: Treasure Island
Reference #: 10
Book #: 5
Book Title: The Secret Garden
Reference #: 12
Book #: 6
Book Title: Alice's Adventures in Wonderland
Reference #: 14
Book #: 7
Book Title: Twenty Thousand Leagues Under the Sea
Reference #: 20
Book #: 8
Book Title: Peter Pan
Reference #: 24
Book #: 9
Book Title: Charlotte's Web
Reference #: 26
Book #: 10
Book Title: A Little Princess
Reference #: 31
Book #: 11
Book Title: Little Women
Reference #: 32
Book #: 12
Book Title: Black Beauty
Reference #: 33
Book #: 13
Book Title: The Merry Adventures of Robin Hood
Reference #: 35
Book #: 14
Book Title: Robinson Crusoe
Reference #: 40
Book #: 15
Book Title: Anne of Green Gables
Reference #: 46
Book #: 16
Book Title: Little House in the Big Woods
Reference #: 50
Book #: 17
Book Title: Swiss Family Robinson
Reference #: 52
Book #: 18
Book Title: The Lion, the Witch and the Wardrobe
Reference #: 54
Book #: 19
Book Title: Heidi
Reference #: 56
Book #: 20
Book Title: A Winkle in Time
Reference #: 66
Book #: 21
Book Title: Mary Poppins
Reference #: 100
Book #: 22
В чем ваши вопросы? – Nico
Обновлено сообщение, явно задавая вопрос. – jxshu
В чём проблема? –