Listen

Status
Nicht offen für weitere Antworten.

nata

Bekanntes Mitglied
hallo an allen,
Java:
import java.util.LinkedList;
import java.util.Iterator;


	public class Bibliothek{
		private LinkedList <Buch> buechter = new LinkedList<Buch>();
		private LinkedList<Buch> ausgelieheneBuecher = new LinkedList<Buch>();
	
	
	public void registrieren(Buch buch)throws Exception{
		if (buch == null ){
			throw new  Exception("Buch darf nicht null sein")
		}
			buechter.add(buch);

	}
	
	public Buch ausleihen(String titel) throws Exception{
		if(titel == null){
			throw new  Exception("Titel darf nicht null sein")
		}
		
		for(int i = 0; i < buecher.size(); i++){
				
		}
		
	}
		
}
ich komme ab zeile 23 nichtmehr zurecht.
ich habe noch eine klasse Buch wo ich im konstruktor
public Buch(String titel, String autor, double preis, String isbn)
und auch methoden public String getIsbn(): und toString

wie soll ich in der liste durchlaufen und einzeln titeln anschauen?
sollte ich noch in der klasse buch noch getTitel() implementieren? damit ich dan vergleichen kann, obwohl es in der angabe nicht gegeben ist?
danke vielmals
lg nata
 

eRaaaa

Top Contributor
sollte ich noch in der klasse buch noch getTitel() implementieren?

wäre ich dafür :D

ist die methodendeklaration auch so vorgegeben? weil string/titel als paramter, klingt vllt eher nach einer methode : sucheBuch oder so ähnlich. bei ausleihen, würd ich persönlich wahrscheinlich eher ein buch als paramter verlangen und dann entweder true zurückgeben, wenn ausleihen erfolgreich war, oder false, wenn buch bereits ausgeleiht ist, oder irgendwie so :D
aber wenn das jetzt die aufgabe sprengt, soll dich das nicht weiter verwirren :D

achja und
Java:
 private LinkedList <Buch> buechter = new LinkedList<Buch>();
schnell mal das t bei buechter entfernen ;D
und es wäre vllt vom vorteil, [c]private List<Buch> buecher = ...[/c] zu schreiben.
 

nata

Bekanntes Mitglied
ja in der angabe ist so vorgegeben

- public Buch ausleihen(String titel): Der Titel darf nicht null sein – wenn er
es ist, dann werfe eine Exception. Überprüfe danach ob es in der Bibliothek ein
Buch mit dem übergebenen Titel gibt. Wenn nicht, dann werfe eine Exception.
Wenn schon, dann gebe das erste Buch zurück, das diesen Titel hat und
beende danach sofort die Methode. Trage davor noch das Buch in die Liste
ausgelieheneBuecher ein und entferne es aus der Liste Bücher

wenn es public Buch ausleihen(Buch buch ) so wäre, glaube dass ich was vorüberbringen könnte.Glaubt ist dass es public Buch ausleihen(String titel) nicht stimmt?
 

eRaaaa

Top Contributor
nein, wenn die aufgabenstellung so ist, dann ist das schon richtig was du da machst.
(vllt würde sich da aber eher eine for-each-schleife eignen,
Java:
for(Buch buch: buecher) {
if(buch.getTitle().equals(titel))..... //oder so
mit der schleife die du jetzt hast ginge es aber auch)
aber eine getTitel() methode würde ich in deiner buch-klasse trotzdme implementieren(siehe oben), und dann halt jedne titel mit dem übergebenen titel vergleichen, wenn ein title equals dem übergebenen titel ist --> return buch;
falls nicht, --> werfe zum schluss eine exception (find ich zwar persönlich auch etwas merkwürdig, aber wenn das so in der aufgabenstellung steht, nunja :D )
 
Zuletzt bearbeitet:

nata

Bekanntes Mitglied
soll ich für remove() methode eine Iterator implementieren?
Java:
public Buch ausleihen(String titel) throws Exception{
		Buch ausgabeBuch;
		if(titel == null){
			throw new  Exception("Titel darf nicht null sein");
		}
		
		for(int i = 0; i < buecher.size(); i++){
			Buch aktuallerBuch = buecher.get(i);
			if(!aktuallerBuch.getTitel().equals(titel)){
				throw new  Exception("Das buch ist nicht in vorhanden");
			}
			
					ausgabeBuch = aktuallerBuch	;
		}
		ausgelieheneBuecher.add(ausgabeBuch);
		return ausgabeBuch;
		
	}
jetzt sagt es mir dass ausgabeBuch nicht inizialisiert ist
 

hdi

Top Contributor
Also entweder du holst dir den Titel per Getter, oder du implementierst equals() in der Klasse Buch:

Java:
public boolean equals(Object o){
   if(!(o instanceof Buch)){
       return false;
   }
   return this.titel.equals(((Buch)o).titel);
}

In diesem Fall wären also 2 Bücher gleich, wenn ihre Titel die selben sind. Ob das sinnvoll ist, musst du entscheiden. Ich finde es nicht sehr sinnvoll, da ist die ISBN schon eindeutiger. Hilft dir aber nix wenn du in der ausleihen()-Methode nur den Titel bekommst. Das halte ich schon für einen Design-Fehler, man sollte da die ISBN bekommen.

Also.. ich nehme an du solltest dir einfach einen Getter für den Titel basteln, auch wenn das nicht in der Angabe steht. Eine andere Option hast du ja gar nicht.

edit: Mal wieder Foren-Bug. Passiert euch das auch, dass ihr einen Thread anklickt und es werden keine Antworten gezeigt? Ich dachte es gibt noch keine Antwort,und als ich diese hier losgeschickt hab hab ich plötzlich all die anderen Antworten gesehen :bahnhof:
 

nata

Bekanntes Mitglied
was ich da oben auf der 10.zeile habe if(!aktuallerBuch.getTitel().equals(titel))
ist das grobbe Fehler?
ich dachte dass ich mit aktuallerBuch.getTitel() werde ich titel aufrufen

die klasse Buch habe ich scon ausgebessert wie der benutzer eRaaa mit empfolen hat und läuft gut zum glück
Java:
public class Buch{
	private String titel;
	private String autor;
	private double preis;
	private String isbn;
	
	public Buch(String titel, String autor, double preis, String isbn)throws Exception{
		setTitel(titel);
		setAutor(autor);
		setPreis(preis);
		setIsbn(isbn);
	}
	
	public void setTitel(String titel)throws Exception{
		if(titel == null){
			throw new Exception("Titel darf nicht null sein");
		}
		if(titel.length() < 1 || titel.length() > 30){
			throw new Exception("Titel darf bis 30 zeichen lang sein");
		}
	
		this.titel = titel;	
	}
	
	public void setAutor(String autor)throws Exception{
		if(autor == null){
			throw new Exception("Autor darf nicht null sein");
		}
		if(autor.length() < 1 || autor.length() > 30){
			throw new Exception("Autor darf bis 30 zeichen lang sein");
		}
	
		this.autor = autor;	
	}
	
	public void setPreis(double preis)throws Exception{
		
		if(preis < 3.5 || preis > 350){
			throw new Exception("preis soll zwischen 3 euro und 350 euro sein");
		}
	
		this.preis = preis;	
	}
	
	public void setIsbn(String isbn)throws Exception{

		if(isbn.length() < 7 || isbn.length() > 12){
			throw new Exception("Isbn nummer darf nur 7 bis 12 zeichen enthalten");
		}
		
		for(int i = 0 ; i < isbn.length() -1 ; i++){
			char c = isbn.charAt(i);
			if(!Character.isDigit(c) && isbn.charAt(i) != '-' ){
				throw new Exception("Isbn soll bis letzte buchstaben nur ziffern oder bindestriche enthalten");
			}
						            	
		}
		if(!Character.isDigit(isbn.charAt(isbn.length()-1)) && isbn.charAt(isbn.length()-1) != '-' && isbn.charAt(isbn.length()-1) != 'X'){
				throw new Exception("letzte zeichen soll entweder zahl ,bindestrich oder X sein");
			}
			
			this.isbn = isbn;
		
	}
	
	public String getIsbn(){
		return isbn;
	
	}
	
	public String getTitel(){
		return titel;
	}
	
	public String toString(){
	
		return autor + "  " + titel + "  " + isbn + "  "+ preis;	
	
	}
	
	
}
 

hdi

Top Contributor
Das mit dem Getter und deiner Prüfung ist schon richtig so, ich hab die ganze Diskussion nicht mitbekommen (siehe mein edit im letzten Beitrag).

Allerdings machst du noch etwas falsch in der Schleife. Und zwar wirfst du die Exception, wenn nicht gleich das erste Buch den gesuchten Titel enthält. Aber du musst ja natürlich alle Bücher durchsuchen. Deshalb solltest du die Meldung erst werfen wenn es das Buch wirklich nirgendwo in der Liste gibt.
Außerdem kannst du die Suche abbrechen, sobald das Buch gefunden wurde. Also zwei Änderungen:

Java:
 for(int i = 0; i < buecher.size(); i++){
            Buch aktuallerBuch = buecher.get(i);
            if(aktuallerBuch.getTitel().equals(titel)){ // wenn die Titel übereinstimmen
                ausgelieheneBuecher.add(aktuellerBuch);
                return aktuellerBuch; // btw: aktuellesBuch ist besseres deutsch ;)
            }
 }
 // wenn wir hier ankommen, hat kein Buch in der Liste mit dem Titel gematcht:
 throw new  Exception("Das buch ist nicht in vorhanden");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
L Lineare Listen Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Listen sortieren Java Basics - Anfänger-Themen 3
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
Y Collections 4 Listen Java Basics - Anfänger-Themen 14
S OOP/ Listen...etc... Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
N Listen Java Basics - Anfänger-Themen 5
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben