【问题标题】:How to transform String Array to int Array with streams如何使用流将字符串数组转换为 int 数组
【发布时间】:2019-01-16 18:08:06
【问题描述】:

我正在创建一个简单的类,它接受一个字符串数组并返回一个整数数组,其中包含每个字符串的长度。我正在尝试使用 Java 8 Stream API 来做到这一点。

public int[] findMostSimilar(String[] words) {

    return Arrays.stream(words).map(n -> n.length()).toArray();

}

但流本身出现错误提示

不兼容的类型,必需:int[],找到:java.lang.Object[]。

有什么想法可以实现我想要的吗?

【问题讨论】:

标签: java arrays lambda java-8 java-stream


【解决方案1】:

首先让我们看看为什么你的尝试没有成功:

Arrays.stream(words).map(n -> n.length()).toArray(); 

上述语句返回Object[]。你可以使用.toArray(Integer[]::new);,但这会返回Integer[]


相反,您可以使用mapToInt

int[] array = Arrays.stream(words).mapToInt(String::length).toArray();

【讨论】:

    【解决方案2】:

    这应该可行。

    int[] ints = Arrays.stream(words).mapToInt(String::length).toArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多