Avatar ·

Wie man einen Java 8 Stream in ein Array konvertiert: Eine ausführliche Anleitung

Hallo zusammen! Ich habe gerade angefangen, Java 8 und die Stream API zu lernen. Ich bin auf eine scheinbar einfache Aufgabe gestoßen: Ich habe eine Liste von Strings, die ich in einen Stream umgewandelt, gefiltert und sortiert habe. Jetzt möchte ich das Ergebnis als normales String[]-Array erhalten, um es an eine alte Methode zu übergeben, die nur ein Array akzeptiert. Hier ist der Code, den ich habe: ```java List myList = Arrays.asList("banana", "apple", "cherry", "date"); Stream myStream = myList.stream() .filter(s -> s.startsWith("a")) .sorted(); ``` Jetzt muss ich ein String[] erhalten. Ich habe versucht, die Methode `toArray()` auf dem Stream aufzurufen, aber sie gibt `Object[]` zurück, nicht `String[]`. Wenn ich versuche, das Ergebnis zu casten: ```java String[] resultArray = (String[]) myStream.toArray(); ``` erhalte ich eine ClassCastException zur Laufzeit. Es scheint, dass toArray() ohne Parameter ein Object[]-Array zurückgibt. Könnt ihr mir bitte sagen, wie ich einen Stream korrekt in ein String[] konvertiere? Gibt es eine Möglichkeit?