首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从List<Integer>获取IntStream?

如何从List<Integer>获取IntStream?
EN

Stack Overflow用户
提问于 2014-07-08 22:05:08
回答 1查看 22.5K关注 0票数 54

我可以想到两种方法:

代码语言:javascript
复制
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);
}

惯用的方式是什么?也许已经有一个库函数可以做我想要的事情了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-08 22:40:19

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

代码语言:javascript
复制
public static IntStream baz(List<Integer> list)
{
    return list.stream().mapToInt(Integer::intValue);
}

因为函数Integer::intValueToIntFunction完全兼容,因为它接受一个Integer并返回一个int。不执行autoboxing

我也在寻找一个等价的Function::identity,我希望写一个等价于你的bar方法的东西:

代码语言:javascript
复制
public static IntStream qux(List<Integer> list)
{
    return list.stream().mapToInt(IntFunction::identity);
}

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

票数 64
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24633913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档