Hallo,
mit Hilfe einer einfach verketteten Liste mit Kompositum ist die Methode "suchen" implementiert mit der Annahme: Es wird nach Objekten anhand eines Suchkriteriums gesucht, das genau einmal vorkommen kann (quasi Primärschlüsselwert).
Jetzt muss die Methode so abgeändert werden, dass nach einem Wert gesucht werden kann, der aber mehrmals in der Liste bei den Objekten vorkommen soll (bei mir: "Preis").
Bisher sieht die Methode so aus (für das Suchen nach einem Wert, der genau einmal vorkommen kann):
Ich hab versucht, mit while das umzuschreiben, aber wenn mehrere Objekte zutreffen gibts Probleme mit dem return. Kann mir einer helfen, was ich abändern muss?
Danke.
Zur Info:
mit Hilfe einer einfach verketteten Liste mit Kompositum ist die Methode "suchen" implementiert mit der Annahme: Es wird nach Objekten anhand eines Suchkriteriums gesucht, das genau einmal vorkommen kann (quasi Primärschlüsselwert).
Jetzt muss die Methode so abgeändert werden, dass nach einem Wert gesucht werden kann, der aber mehrmals in der Liste bei den Objekten vorkommen soll (bei mir: "Preis").
Bisher sieht die Methode so aus (für das Suchen nach einem Wert, der genau einmal vorkommen kann):
Java:
public Bett eintragSuchen(double suchdatum){ // Preis
if(bettliste.datenknotenGeben(new Bett(suchdatum, 0, "", 0, 0, 0)) == null){
System.out.println("Fehler!");
return null;
}
else{
return ((Bett) bettliste.datenknotenGeben(new Bett(suchdatum, 0, "", 0, 0, 0)).inhaltGeben());
}
}
Ich hab versucht, mit while das umzuschreiben, aber wenn mehrere Objekte zutreffen gibts Probleme mit dem return. Kann mir einer helfen, was ich abändern muss?
Danke.
Zur Info:
Java:
public abstract class Listenelement{
public abstract Listenelement naechsterGeben();
public abstract Datenelement inhaltGeben();
public abstract Datenknoten datenknotenGeben(Datenelement suchinhalt);
public abstract Listenelement sortiertEntfernen(Datenelement suchinhalt);
public abstract Listenelement sortiertEinfuegen(Datenelement de);
public abstract Datenknoten hintenEinfuegen(Datenelement de);
public abstract Datenelement inhaltLetzterGeben(Datenelement aktuellerInhalt);
public abstract int anzahlDatenknotenGeben();
public abstract void listendatenAusgeben();
}
public class Datenknoten extends Listenelement{
private Listenelement naechster;
private Datenelement inhalt;
public Datenknoten(Listenelement le, Datenelement de){
naechster = le;
inhalt = de;
}
public void naechsterSetzen(Listenelement le){
naechster = le;
}
public Listenelement naechsterGeben(){
return naechster;
}
public Datenelement inhaltGeben(){
return inhalt;
}
public Datenknoten datenknotenGeben(Datenelement suchinhalt){
if(inhalt.istGleich(suchinhalt)){
return this;
}
else{
return naechster.datenknotenGeben(suchinhalt);
}
}
...
}
public class Abschluss extends Listenelement{
public Listenelement naechsterGeben(){
return this;
}
public Datenelement inhaltGeben(){
return null;
}
public Datenknoten datenknotenGeben(Datenelement suchinhalt){
return null;
}
...
}
import java.util.*;
public class Bett extends Datenelement{
private double preis;
private int artnr;
private String bezeichnung;
private Calendar imSortimentSeit = new GregorianCalendar();
public Bett(double pr, int anr, String bez, int jahr, int monat, int tag){
preis = pr;
artnr = anr;
bezeichnung = bez;
imSortimentSeit.set(jahr, monat, tag);
}
...
}