Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben: Unterschied zwischen den Versionen

Zeile 62: Zeile 62:
== Suche in einem Array ==
== Suche in einem Array ==
Ein häufiges Problem ist die Suche nach einem speziellen Element.  
Ein häufiges Problem ist die Suche nach einem speziellen Element.  
=== Suche in einem unsortierten Haufen ===
=== Suche in einem unsortierten Kartenhaufen ===
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.
Sucht man in einem heruntergefallenen Kartenstapel nach einer speziellen Karte, so muss man sich alle Karten ansehen, da sie in keiner speziellen Ordnung herunterfallen, sondern völlig durcheinander sind.
<syntaxhighlight lang="java">
public class Karte{
  private String farbe;
  private String wert;
  public Karte(){
      String[] farben = {"Kreuz", "Pik", "Herz", "Karo"};
      String[] werte = {"5","6","7","8","9","10","Bube","Dame","König","Ass"};
      farbe = farben[(int)(Math.random()*farben.length())];
      wert= werte[(int)(Math.random()*wert.length())];
  }
  public boolean istGleich(String pFarbe, String pWert){
      return farbe.equals(pFarbe) && wert.equals(pWert);
  }
}
</syntaxhighlight>


In Java können die Karten in einem Array verwaltet werden:  
In Java können die Karten in einem Array verwaltet werden:  
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
public class Kartenhaufen{
public class Kartenhaufen{
   Karte[] haufen;  
   private Karte[] haufen;  
   public Kartenhaufen(){
   public Kartenhaufen(){
     haufen = new Karte[32];
     haufen = new Karte[32];
Zeile 79: Zeile 97:
     for (int i=0; i< haufen.length;i++){   
     for (int i=0; i< haufen.length;i++){   
       Karte k = haufen[i];                           
       Karte k = haufen[i];                           
       if(k.getFarbe().equals(farbe) &&   
       if(k.istGleich(farbe,wert)){         
        k.getWert().equals(wert)){         
         return k;                                  
         return k;                        
                                         
       }                                     
       }                                     
     }
     }
130

Bearbeitungen