Hey Leute!
Musste in der Uni so eine Art Bücherverwaltung schreiben die mit einem Vector arbeitet. Habe hierbei drei Klassen. In der Klasse. Testprogramm.java befindet sich die Main in der ein paar Bücher angelegt werden, wieder gelöscht werden und darauf zugegriffen wird. Seltsamerweise wird jedoch das erste Buch überschrieben sobald ich das zweite anlege. Könnt ihr mir da helfen? Das ist mein Code:
Musste in der Uni so eine Art Bücherverwaltung schreiben die mit einem Vector arbeitet. Habe hierbei drei Klassen. In der Klasse. Testprogramm.java befindet sich die Main in der ein paar Bücher angelegt werden, wieder gelöscht werden und darauf zugegriffen wird. Seltsamerweise wird jedoch das erste Buch überschrieben sobald ich das zweite anlege. Könnt ihr mir da helfen? Das ist mein Code:
Java:
import java.util.Vector;
public class Book {
private long id;
private String title;
private Vector<String> authors;
private String publisher;
private int year;
private String isbn;
public Book(long id) {
this.id = id;
this.title = "";
this.publisher = "";
this.isbn = "";
this.authors = new Vector<String>();
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public long getId() {
return id;
}
public Vector<String> getAuthors() {
return authors;
}
public void addAuthor(String authors) {
this.authors.addElement(authors);
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getPublisher() {
return publisher;
}
}
Java:
import java.util.Iterator;
import java.util.Vector;
public class BookAdministration {
private Vector<Book> books;
public BookAdministration() {
books = new Vector<Book>();
}
public boolean addBook(long id, String title, Vector<String> authors,
String publisher, int year, String isbn) {
for (Book n : books) {
if (n.getId() == id) {
return false;
}
}
Book buch = new Book(id);
buch.setTitle(title);
buch.setPublisher(publisher);
buch.setYear(year);
buch.setIsbn(isbn);
for (String n : authors) {
buch.addAuthor(n);
}
/*
* Iterator- Version
*
* for (Iterator<String> iter = authors.iterator(); iter.hasNext();) {
* String element = iter.next(); buch.addAuthor(element);
*
* }
*/
books.add(buch);
return true;
}
public void removeBook(long id) {
for (Iterator<Book> iter = books.iterator(); iter.hasNext();) {
Book element = iter.next();
if (element.getId() == id)
iter.remove();
}
}
public String getBookStr(long id) {
String result = "";
for (Book n : books) {
if (n.getId() == id) {
result = (n.getId() + ";" + n.getTitle() + ";"
+ n.getAuthors().toString() + ";" + n.getPublisher()
+ ";" + n.getYear() + ";" + n.getIsbn());
} else
result = "Book not found!";
}
return result;
}
public Vector<Integer> search(String searchStr) {
Vector<Integer> result = new Vector<Integer>();
for (Book booksearch : books) {
for (String author : booksearch.getAuthors()) {
if (author.equalsIgnoreCase(searchStr)) {
result.add((int) booksearch.getId());
}
}
}
return result;
}
}
Java:
import java.util.Vector;
public class Testprogramm {
/**
* @param args
*/
public static void main(String[] args) {
BookAdministration library = new BookAdministration();
Vector<String> authors1 = new Vector<String>();
authors1.addElement("Markus");
authors1.addElement("Michael");
Vector<String> authors2 = new Vector<String>();
authors2.addElement("Klaus");
authors2.addElement("Franz");
System.out.println(library.addBook(12, "Testtitel", authors1,
"Testpublisher", 1999, "ISBN31415"));
System.out.println(library.addBook(13, "Testen", authors2, "Publisher",
2005, "ISBN34656"));
System.out.println(library.getBookStr(12));
System.out.println(library.search("klaus"));
library.removeBook(13);
System.out.println(library.getBookStr(13));
}
}