我可以想到两种方式:
public static IntStream foo(List<Integer> list)
{
return list.stream().mapToInt(Integer::valueOf);
}
public static IntStream bar(List<Integer> list)
{
return list.stream().mapToInt(x -> x);
}
惯用的方式是什么?也许已经有一个库函数可以完全满足我的需求?
我猜这种方式(或至少是另一种方式)更有效:
public static IntStream baz(List<Integer> list)
{
return list.stream().mapToInt(Integer::intValue);
}
由于该函数Integer::intValue
与完全兼容,ToIntFunction
因为它需要Integer
并返回int
。不执行自动装箱。
我也在寻找一个等价的Function::identity
,我希望写一个等价的您的bar
方法:
public static IntStream qux(List<Integer> list)
{
return list.stream().mapToInt(IntFunction::identity);
}
但是他们没有提供这种identity
方法。不知道为什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句