(Objekte

Diskutiere (Objekte im Java Basics - Anfänger-Themen Bereich.
A

Adriano10

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.
 
L

LimDul

Was nicht ganz überraschend ist - wenn du ein Array anlegst, muss das eine Größe größer 0 haben - wie soll man sonst was speichern?
 
F

fhoffmann

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).
 
Thema: 

(Objekte

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben