我正在制作一个简单的类,该类接受一个字符串数组,并返回一个整数数组,其中包含每个字符串的长度。我正在尝试使用Java 8 Stream API来做到这一点。
public int[] findMostSimilar(String[] words) {
return Arrays.stream(words).map(n -> n.length()).toArray();
}
但是流本身中出现一个错误,指示
不兼容的类型,必需:int [],发现:java.lang.Object []。
有什么想法可以实现我想要的吗?
答案 0 :(得分:9)
首先让我们看看为什么您的尝试不起作用:
Arrays.stream(words).map(n -> n.length()).toArray();
上面的语句返回Object[]
。您可以使用.toArray(Integer[]::new);
,但这将返回Integer[]
相反,您可以使用mapToInt
:
int[] array = Arrays.stream(words).mapToInt(String::length).toArray();
答案 1 :(得分:0)
这应该有效。
int[] ints = Arrays.stream(words).mapToInt(String::length).toArray();