Java 8 - 转换数组元素的最佳方式

标签 java java-8 java-stream

从 Java 8 开始,因此需要一些时间来适应它。这是一个经典问题,我有一组要转换的对象。

在 Java8 之前,理想的代码应该是(没有空指针):

P[] outputArray = new P[inputArray.length];
for (int i =0; i< inputArray.length; i++ )
{
    outputArray [i] = inputArray[i].transformToP();
}

Java8 中最好的版本是什么?

最佳答案

使用 Stream API 非常简单:

P[] outputArray = Arrays.stream(inputArray).map(e -> e.transformToP()).toArray(P[]::new);

也可以使用方法引用(假设I是输入元素的类型):

P[] outputArray = Arrays.stream(inputArray).map(I::transformToP).toArray(P[]::new);

请注意,如果 transformToP() 方法抛出检查异常,您可能会遇到问题。在这种情况下将它们转换为未选中的或咨询 this问题。

关于Java 8 - 转换数组元素的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005002/

相关文章:

java - 在 Java 8 中读取文件以获取二维数组

java - 流式传输 map 列表并收集特定 key

java - 用lambda表达式java实现计数变量

java - 如何在 Java 8 中使用 concat 获取不同的对象列表

java - 如何根据其中一个元素对 Object[] 数组进行排序?

java - 使用流从对象列表中包含的数组检索类型时出错

java - Java/CXF/SOAP 应用程序中的继承问题?

java - Stream 在没有过滤器(谓词)的情况下工作,使用它给出 "Incompatible types"

java - Tomcat 目录,用于在重新启动和重新部署时保存信息

java - 尝试通过java程序在文本文件中的特定行之间添加行(字符串数组)?