Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用流将字符串数组转换为int数组_Java_Arrays_Lambda_Java 8_Java Stream - Fatal编程技术网

Java 如何使用流将字符串数组转换为int数组

Java 如何使用流将字符串数组转换为int数组,java,arrays,lambda,java-8,java-stream,Java,Arrays,Lambda,Java 8,Java Stream,我正在创建一个简单的类,它接受一个字符串数组并返回一个整数数组,其中包含每个字符串的长度。我正在尝试使用Java8流API来实现这一点 public int[] findMostSimilar(String[] words) { return Arrays.stream(words).map(n -> n.length()).toArray(); } 但是流本身出现了一个错误,表明 不兼容的类型,必需:int[],找到:java.lang.Object[] 有什么想法可以实现

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

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

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

}
但是流本身出现了一个错误,表明

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


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

首先让我们看看你的尝试失败的原因:

Arrays.stream(words).map(n -> n.length()).toArray(); 
上面的语句返回
Object[]
。您可以使用
.toArray(Integer[]::new)但这将返回
整数[]


相反,您可以利用:

这应该行得通

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

非常相似/可能重复:
int[] ints = Arrays.stream(words).mapToInt(String::length).toArray();