mal ganz blöd gefragt.. wozu brauche ich hier mehrdimensionale Arrays? Hab ich da gerade einen Knick im Gehirn?
Das findet sich meiner Meinung nach nur bei so Anfänger-Aufgaben, denn es sind erst ein paar Details der Java Sprache bekannt und manche Bereiche sind noch nicht behandelt worden.
So kommt aus meiner Sicht der objektorientierte Ansatz viel zu spät bei fast allen Büchern und Kursen. Aber bei einer objektorientierten Sprache ist der Ansatz tatsächlich anders. Da würde man sich überlegen, was man an Entitäten braucht.
Das Problem bei dem Ansatz mit dem 2D Array ist, dass man hier unleserlichen Code bekommt.
kundenzahlung[0][...]
ist von
kundenzahlung[1][...]
kaum zu unterscheiden. Durch die Einführung von Konstanten wird es dann etwas besser zu
kundenzahlung[MUENZEN_WERT][...]
und
kundenzahlung[MUENZEN_ANZAHL][...]
aber es macht es nicht wirklich gut. Außerdem ist man auf einen Datentyp begrenzt so man nicht auf Object geht um dann die Typsicherheit weg zu werfen.
Und hinzu kommt, dass der Code nicht wirklich zugehörig ist, d.h. es findet keine Kapselung statt.
Die Lösung kann statt dessen eine Klasse sein, die halt Werte hat für die verwendete Münze und für die Anzahl. Münze wäre dann evtl. eine Enumeration, die auch Comparable implementiert und man kann dann über die sortierten values() gehen um dann die jeweilige Anzahl der Werte zu ermitteln. Die Klasse mit Münze und Anzahl hätte dann auch Methoden, die z.B. den Wert einer Instanz ermittelt und so.
Und ein anderer Punkt ist auch noch, dass man oft statt einem Array schlicht eine List verwendet. Aus einer array creation expression mit array initializer würde dann ein List.of(...) oder so.