Hallo zusammen,
in meiner Methode geldscheinHinzufügen() füge ich die Geldscheine der ArrayList hinzu.
Nun soll auch gleichzeitig ausgegeben werden, welche Geldscheine sich in der Liste befinden -> eine ausgabe() Methode wird aufgerufen.
Die Ausgabe stimmt aber nicht. Gleiche Geldscheine werden dreimal oder viermal ausgegeben.
Es funktioniert aber, wenn ich die ausgabe() Methode seperat aufrufe, ohne sie in die geldscheinHinzufügen() Methode reinzumachen.
Kann mir bitte jemand erklären warum?
in meiner Methode geldscheinHinzufügen() füge ich die Geldscheine der ArrayList hinzu.
Nun soll auch gleichzeitig ausgegeben werden, welche Geldscheine sich in der Liste befinden -> eine ausgabe() Methode wird aufgerufen.
Die Ausgabe stimmt aber nicht. Gleiche Geldscheine werden dreimal oder viermal ausgegeben.
Es funktioniert aber, wenn ich die ausgabe() Methode seperat aufrufe, ohne sie in die geldscheinHinzufügen() Methode reinzumachen.
Kann mir bitte jemand erklären warum?
Code:
import java.util.*;
public class GeldscheinMain {
public static void main(String[] args) {
Automat automat = new Automat();
automat.geldscheinHinzufügen(new Geldschein(987, 30));
automat.geldscheinHinzufügen(new Geldschein(123, 100));
automat.geldscheinHinzufügen(new Geldschein(234, 20));
automat.geldscheinHinzufügen(new Geldschein(456, 50));
automat.sortieren();
//automat.ausgabe();
automat.info();
}
}
Code:
import java.util.*;
public class Automat {
List<Geldschein> list = new ArrayList<Geldschein>();
public void geldscheinHinzufügen(Geldschein g) {
list.add(g);
ausgabe();
}
public void ausgabe() {
for (Geldschein geldschein : list) {
System.out.println(geldschein);
}
}
public void info() {
int summe = 0;
for (Geldschein geldschein : list) {
summe = summe + geldschein.getWert();
}
System.out.println("Stück" + " " + list.size() + " Summe" + " " + summe + " EUR");
}
public void sortieren() {
Collections.sort(list, (g1, g2) -> g1.getNummer() - g2.getNummer());
}
}
Code:
import java.util.*;
public class Geldschein {
private int nummer;
private int wert;
public Geldschein(int nummer, int wert) {
super();
this.nummer = nummer;
this.wert = wert;
}
public int getNummer() {
return nummer;
}
public void setNummer(int nummer) {
this.nummer = nummer;
}
public int getWert() {
return wert;
}
public void setWert(int wert) {
this.wert = wert;
}
@Override
public String toString() {
return "" + "Nr." + " " + getNummer() + "," + " Wert" + " " + getWert() + " EUR";
}
}