Avatar ·

如何将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[]?有没有什么