(Objekte

Adriano10

Bekanntes Mitglied
Java:
public class Kalender {
    private static int size = -1;
    List<String> list = new ArrayList<>();
    List<String> list1 = new ArrayList<>();

    public void neuerTermin(String datum, String prozess) {
        list.add(datum);
        list1.add(prozess);
    }

    public String[] liefereEreignisse(String datum) {
   
   
        String[] result = new String[size];
        for(int i = 0; i < list.size(); i++) {
            if(datum.equals(list.get(i))) {  
                result[size++] = list1.get(i);
               
            }
        }

        return result;
    }

    public static void main(String[] args) {
        Kalender kalender = new Kalender();
        kalender.neuerTermin("03.09.2007", "Geburtstag Oma");
        kalender.neuerTermin("01.01.2007", "Ausschlafen");
        kalender.neuerTermin("03.09.2007", "Schulfest");

        String[] array = kalender.liefereEreignisse("03.09.2007");
        for(int i = 0; i < array.length; i++) {
         System.out.println(array[i]);
        }
     
    }

}
Exception in thread "main" java.lang.NegativeArraySizeException
at übung.Kalender.liefereEreignisse(Kalender.java:23)
at übung.Kalender.main(Kalender.java:40)

Ausgabe muss "Geburtstag Oma" und "Schulfest" sein.

wieso tritt diese Fehler auf, was mache ich hier falsch?

Danke im Voraus.
 
public String[] liefereEreignisse(String datum)
Muss liefereEreignisse wirklich ein String[] zurückliefern - und keine List<String>?
Wenn dem so ist, würde ich dennoch (da die Größe des String[] anfangs unbekannt ist) zunächst eine List<String> benutzen, diese mit den passenden Elementen füllen und am Ende in ein String[] umwandeln (zu diesem Zeitpunkt ist dann die benötigte Größe bekannt).
 

Zurück
Oben