Java流toArray()转换为特定类型的数组-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Java流toArray()转换为特定类型的数组

保持可爱mmm 2020-02-09 11:49:53 198

也许这很简单,但实际上我对Java 8功能不熟悉,也不知道如何实现。我有一条包含以下文本的简单行:

“密钥,名称”

并且我想将该行转换为String数组,并用逗号(,)分隔每个值,但是,我还想在返回最终数组之前修剪每个字段,所以我做了以下工作:

Arrays.stream(line.split(",")).map(String::trim).toArray(); 但是,这将返回Object []数组而不是String []数组。经过进一步检查,我可以确认内容实际上是String实例,但是数组本身是Object元素的。让我说明一下,这就是调试器对返回对象的说明:

Object[]: 0 = (String) "Key" 1 = (String) "Name" 据我所知,问题出在映射调用的返回类型上,但是如何使它返回String []数组呢? 问题来源于stack overflow

Java
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-02-09 11:50:04

    使用toArray(size -> new String[size])或toArray(String[]::new)。

    String[] strings = Arrays.stream(line.split(",")).map(String::trim).toArray(String[]::new); 这实际上是一个lambda表达式

    .toArray(new IntFunction<String[]>() { @Override public String[] apply(int size) { return new String[size]; } }); 您告诉的位置将数组转换为相同大小的String数组。

    来自文档

    生成器函数采用整数(即所需数组的大小),并生成所需大小的数组。这可以用数组构造函数参考简明表达:

    Person[] men = people.stream() .filter(p -> p.getGender() == MALE) .toArray(Person[]::new); 类型参数:

    A-结果数组的元素类型

    参数:

    generator-产生所需类型和所提供长度的新数组的函数

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程