Hilfestellung bei Iteratorimplementierung

Flown

Administrator
Mitarbeiter
Poste doch mal den Code hier in Code-Tags: [code=java]//JAVA CODE HERE[/code] und dazu eine genaue Aufgabenstellung.
 
Ist keine Aufgabe an sich, ich schreibe nur demnächst(morgen) eine Klausur in Programmieren 1 und wolllte von Grund auf mal eine ArrayList Aufgabe machen. Wenn jetzt eine Aufgabe kommt, wie etwa alle Einträge mit geschlecht = "f" auf der Konsole auszugeben, weiß ich gerade nicht genau weiter, wo ist mein Denkfehler? Es geht um die letzte Methode in der Sammlung.

Das hier ist die Sammlung:

Java:
import java.util.ArrayList;
import java.util.Iterator;

public class Mitgliederdatei
{
  private ArrayList<Mitglied> mitglieder;
   
  public Mitgliederdatei()
  {
  mitglieder = new ArrayList<Mitglied>();
  }
   
  public void mitgliedHinzufügen(Mitglied m)
  {
  mitglieder.add(m);
  }
   
  public void mitgliedEntfernen(int index){
  if(index >= 0 && index <= mitglieder.size()){
  mitglieder.remove(index);
  }
  }
   
  public int mitgliederAnzahl(){
  return mitglieder.size();
  }
   
  public void gibName(int index){
  if(index >= 0 && index <= mitglieder.size()){
  System.out.print(mitglieder.get(index).getName());
  }
  }
   
  public void gibVorame(int index){
  if(index >= 0 && index <= mitglieder.size()){
  System.out.print(mitglieder.get(index).getVorname());
  }
  }
   
  public void gibGeschlecht(int index){
  if(index >= 0 && index <= mitglieder.size()){
  System.out.print(mitglieder.get(index).getGeschlecht());
  }
  }
   
  public void gibAlter(int index){
  if(index >= 0 && index <= mitglieder.size()){
  System.out.print(mitglieder.get(index).getAlter());
  }
  }
  public void sucheGeschlecht(String geschlecht){
  Iterator<Mitglied>it = mitglieder.iterator();
  for(int i = 0; i < mitglieder.size(); i++){
  if(it.next().getGeschlecht() == geschlecht){
  System.out.print(it.next().getVorname() + " " + it.next().getName());
  }
  }
  }
}


und hier ein Mitglied:


Java:
public class Mitglied
{
  private String geschlecht;
  private String vorname;
  private String name;
  private int alter;
   
  /**
  * Konstruktor für Objekte der Klasse Mitglied
  */
  public Mitglied(String geschlecht, String vorname, String nachname, int alter)
  {
  this.geschlecht = geschlecht;
  this.vorname = vorname;
  this.name = name;
  this.alter = alter;
  }


  public String getName(){
  return name;
  }
   
  public String getVorname(){
  return vorname;
  }
   
  public String getGeschlecht(){
  return geschlecht;
  }
   
  public int getAlter(){
  return alter;
  }
}
 

Flown

Administrator
Mitarbeiter
Ich würde das mit einer for-each Schleife lösen:
Java:
for(Mitglied m : mitglieder) {
  if(m.getGeschlecht().equals(geschlecht)) {
    System.out.println(m);
  }
}
 

Ähnliche Java Themen

Neue Themen


Oben