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

8
我正在制作一个简单的类,它接受一个字符串数组,并返回一个包含每个字符串长度的整数数组。我尝试使用Java 8 Stream API来实现。
public int[] findMostSimilar(String[] words) {

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

}

但是在流本身中出现了一个错误,指示不兼容的类型,需要:int[],找到:java.lang.Object[]。你有什么想法如何实现我想要的?

非常相似/可能重复:Java stream toArray() convert to a specific type of array - GBlodgett
2个回答

17

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

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

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


相反,你可以使用mapToInt

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

1
这应该可以工作。
int[] ints = Arrays.stream(words).mapToInt(String::length).toArray();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接