如何从List 获取IntStream?

我可以想到两种方式:

public static IntStream foo(List list) { return list.stream().mapToInt(Integer::valueOf); } public static IntStream bar(List list) { return list.stream().mapToInt(x -> x); } 

什么是惯用的方式? 也许已经有一个库函数完全符合我的要求?

我猜(或者至少它是另一种选择)这种方式更具性能:

 public static IntStream baz(List list) { return list.stream().mapToInt(Integer::intValue); } 

因为函数Integer::intValueToIntFunction完全兼容,因为它接受一个Integer并返回一个int 。 没有执行自动装箱 。

我也在寻找一个等效的Function::identity ,我希望写一个相当于你的bar方法:

 public static IntStream qux(List list) { return list.stream().mapToInt(IntFunction::identity); } 

但是他们没有提供这种identity方法。 不知道为什么。