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?