Java 如何使用流将字符串数组转换为int数组
我正在创建一个简单的类,它接受一个字符串数组并返回一个整数数组,其中包含每个字符串的长度。我正在尝试使用Java8流API来实现这一点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[] 有什么想法可以实现
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();