Fehler in Methoden

EmmaM95

Mitglied
Ich muss für die Uni Aufgaben bearbeiten und diese dann in ein Portal hochladen, welches Test durchführt. Ich habe den Code soweit fertig, aber ein paar Test werden nicht bestanden und ich finde die Fehler nicht.
In dieser Aufgabe sind 2 Klassen miteinander "verbunden". Da ich aber den Fehler in der einen Klasse habe, kann ich die Methode in der anderen auch nicht nutzen.

Das ist erstmal die Aufgabenstellung zu der einen Klassen :

Klasse Rezept :

public boolean beinhaltetZutat(String zutat)
Prüft, ob das Rezept das Lebensmittel zutat benötigt.
public boolean beinhaltetZutaten(String[] zutaten)
Prüft, ob das Rezept die übergebenen Lebensmittel benötigt. Falls mindestens eine Zutat nicht benötigt wird, wird false zurückgegeben, ansonsten ist der Rückgabewerttrue.

Das ist mein Code :
Java:
public boolean beinhaltetZutat(String zutat) {
      Iterator<Zutat> it = getZutaten().iterator();
      for(Zutat z : getZutaten()){
          if(z.equals(it)){
              return true;
          }
        
      }
      return false;

public boolean beinhaltetZutaten(String[] zutaten) {
    for(int i = 0;i<zutaten.length;i++) {
      if(!beinhaltetZutat(zutaten[i])) {
        return false;
      }
    
    }
    return true;
  }
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Deine beinhaltetZutaten Methode sieht schon mal nicht schlecht aus:

Die Zutat besitzt einen Namen und hier musst du auf Gleichheit prüfen.
Java:
public boolean beinhaltetZutat(String zutat) {
  for(Zutat z : getZutaten()) {
    if(z.getName().equals(zutat)) {
      return true;
    }
  return false;
}
 

EmmaM95

Mitglied
Jetzt kriege ich die andere Klasse aber nicht hin.

Die Aufgabenstellung:
public Collection<Rezept> findeRezepteMitZutat(String zutat)
Liefert alle Rezepte, die die übergebe Zutat enthalten. Diese Sammlung soll aufsteigend nach dem Alphabet sortiert sein.

public Collection<Rezept> findeRezepteMitZutaten(String[] zutaten)
Liefert alle Rezepte, die die übergebenen Zutaten enthalten. Diese Sammlung soll aufsteigend nach dem Alphabet sortiert sein.

public Collection<Rezept> findeKochbareRezepte(String[] zutaten)
Liefert alle Rezepte, mit den übergebenen Zutaten gekocht werden können. Diese
Sammlung soll aufsteigend nach dem Alphabet sortiert sein.

Java:
private Collection<Rezept> rez = new TreeSet<Rezept>(new RezeptComparatorAlphabet());
    private Collection<Rezept> col = new TreeSet<Rezept>(new RezeptComparatorKCal()); 

  public Collection<Rezept> findeRezepteMitZutat(String zutat) {


        for(Rezept r: rez) {
          if(r.beinhaltetZutat(zutat)) {
            col.add(r);
         
          }
        }
        return col;
      }
  
      public Collection<Rezept> findeRezepteMitZutaten(String[] zutaten) {

        for(Rezept r: rez) {
          if(r.beinhaltetZutaten(zutaten)==true) {
            col.add(r);
          }
        }
        return col;
  
      }
  
      public Collection<Rezept> findeKochbareRezepte(String[] zutaten) {

        for(Rezept r: rez) {
          if(r.kannGekochtWerden(zutaten)==true) {
            col.add(r);
          }
        }
        return col;
  
      }

Hoffe, dass mir hier noch jemand helfen kann.
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Wenn du die Lösung hier posten würdest, damit andere davon profitieren könnten, wäre das super.
 

EmmaM95

Mitglied
Man muss einfach private Collection<Rezept> col =new TreeSet<Rezept>(new RezeptComparatorKCal()); in jeder methode einzeln setzen anstatt nur einmal
 

Neue Themen


Oben