Java Zufälliges Präsentations Tool funktioniert nicht?

...komplette Frage anzeigen

1 Antwort

HashMap<Integer, String>


Wieso muss es eine HashMap sein? Ein String-Array oder besser eine String-Liste würde für diese Anwendung doch völlig ausreichen.

Integer.parseInt(JOptionPane.showInputDialog("Wie viele Themen gibt es?"))

Diese Aktion ist sehr wackelig. Wenn die Eingabe keiner Zahl entspricht oder einfach abgebrochen wird, stürzt dein Programm bereits ab.

Ermittle den eingegebenen Wert innerhalb eines try-Blocks und richte einen Fallback ein, falls die Eingabe nicht den Erwartungen gerecht wird.

Für die übrigen Eingabeboxen solltest du dir ebenso Fallbacks einfallen lassen.

r.nextInt(max-1)+1;

Dies ist der nächste Schwachpunkt. Wenn die Map nur einen Eintrag (oder weniger) beinhaltet, bekommst du eine IllegalArgumentException, da max - 1 <= 0. Der Wert muss allerdings positiv, also max - 1 > 0 sein.

Aber es gibt immer mindestens 1 leere Referenz -> null.

Das liegt daran, dass die Zufallszahl unabhängig vom Zustand der Map ermittelt und angewendet wird. Angenommen es gibt 3 Einträge und 1 Eintrag wurde gelöscht. Dann kann es dennoch sein, dass die Zufallszahl im nächsten Durchlauf wieder auf den 3. Eintrag zeigt, obwohl es diesen schon längst nicht mehr gibt.

removed++;

Diese Variable erfüllt keinen wirklichen Sinn.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?