如何将Java 8 Stream转换为数组(Array)?详细指南
大家好!我刚开始学习Java 8和Stream API。遇到了一个看似简单的任务:我有一个字符串列表,将其转换为stream,进行了过滤、排序,现在想以普通的String[]数组形式获取结果,以便传递给一个只接受数组的旧方法。
以下是我的代码:
```java
List myList = Arrays.asList("banana", "apple", "cherry", "date");
Stream myStream = myList.stream()
.filter(s -> s.startsWith("a"))
.sorted();
```
现在我需要得到String[]。我尝试在stream上调用`toArray()`方法,但它返回的是`Object[]`,而不是`String[]`。当我尝试强制转换结果时:
```java
String[] resultArray = (String[]) myStream.toArray();
```
在运行时会出现ClassCastException。看起来不带参数的toArray()返回的是Object[]数组。
请问如何正确地将Stream转换为String[]?有没有什么