Hallo,
nachdem mir weder in Büchern noch bei Google eine anständige Erklärung bekommen habe, versuche ich es mal hier:
Ich habe in Java ein Package erstellt mit zwei Klassen, einmal der Klasse "Book" mit den Instanzen title, author, year, isbn und publisher und einmal die Klasse "Bookshelf". In Bookshelf habe ich die Instanzen String owner und ArrayList<Book> books implementiert. In diese ArrayList können verschiedene Bücher eingelesen werden. Jetzt zu meiner Frage:
Wie kann ich in dieser ArrayList auf eine Instanzvariable von Book zurückgreifen, z.B. wenn ich mir nur den Titel des fünften Buches anzeigen lassen möchte? Für Book sind sämtliche Getter-Methoden definiert, aber innerhalb der List kann man das ja nicht verwenden.
Mein Ansatz (für die binäre Suche innerhalb der List) sieht im Moment so aus:
Hoffe, jemand kann mir helfen!
Liebe Grüße
(P.S.: Ja, das ist eine Hausaufgabe. Ich möchte aber nicht, dass sie andere für mich erledigen, sondern brauch einfach nur einen kleinen Denkanstoss
nachdem mir weder in Büchern noch bei Google eine anständige Erklärung bekommen habe, versuche ich es mal hier:
Ich habe in Java ein Package erstellt mit zwei Klassen, einmal der Klasse "Book" mit den Instanzen title, author, year, isbn und publisher und einmal die Klasse "Bookshelf". In Bookshelf habe ich die Instanzen String owner und ArrayList<Book> books implementiert. In diese ArrayList können verschiedene Bücher eingelesen werden. Jetzt zu meiner Frage:
Wie kann ich in dieser ArrayList auf eine Instanzvariable von Book zurückgreifen, z.B. wenn ich mir nur den Titel des fünften Buches anzeigen lassen möchte? Für Book sind sämtliche Getter-Methoden definiert, aber innerhalb der List kann man das ja nicht verwenden.
Mein Ansatz (für die binäre Suche innerhalb der List) sieht im Moment so aus:
Java:
public int binSearch(int key, int start, int end){
while (start <= end){
int m = (start+end)/2;
if (Book.getIsbn(m) == key){
return m;
}else if (Book.getIsbn(m) > key){
end = m--;
binSearch(key, start, end);
}else{
start = m++;
binSearch(key, start, end);
}
return -1;
}
}
Liebe Grüße
(P.S.: Ja, das ist eine Hausaufgabe. Ich möchte aber nicht, dass sie andere für mich erledigen, sondern brauch einfach nur einen kleinen Denkanstoss