您可以使用这个简单的代码块将java 8流转换为数组:
String[] myNewArray3 = myNewStream.toArray(String[]::new);
但是让我们更多地解释一下,首先,让我们创建一个填充了三个值的字符串列表:
String[] stringList = {"Bachiri","Taoufiq","Abderrahman"};
从给定的数组创建流:
Stream stringStream = Arrays.stream(stringList);
我们现在可以在这个流Ex上执行一些操作:
Stream myNewStream = stringStream.map(s -> s.toUpperCase());
最后使用以下方法将其转换为java 8数组:
1-Classic方法(功能界面)
IntFunction intFunction = new IntFunction() {
@Override
public String[] apply(int value) {
return new String[value];
}
};
String[] myNewArray = myNewStream.toArray(intFunction);
2 -Lambda表达
String[] myNewArray2 = myNewStream.toArray(value -> new String[value]);
3-方法参考
String[] myNewArray3 = myNewStream.toArray(String[]::new);
方法参考说明:
这是写一个lambda表达式的另一种方式,它与另一个完全相同 .