# Fehler in Methoden



## EmmaM95 (25. Aug 2015)

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 :

```
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;
  }
```


----------



## Flown (25. Aug 2015)

Deine beinhaltetZutaten Methode sieht schon mal nicht schlecht aus:

Die Zutat besitzt einen Namen und hier musst du auf Gleichheit prüfen.

```
public boolean beinhaltetZutat(String zutat) {
  for(Zutat z : getZutaten()) {
    if(z.getName().equals(zutat)) {
      return true;
    }
  return false;
}
```


----------



## EmmaM95 (25. Aug 2015)

Okay danke


----------



## EmmaM95 (25. Aug 2015)

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.


```
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.


----------



## EmmaM95 (26. Aug 2015)

Habe schon die Lösung gefunden.


----------



## Flown (26. Aug 2015)

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


----------



## EmmaM95 (26. Aug 2015)

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


----------

