How do I get an IntStream from a Listlt;Integergt;?(如何从 Listlt;Integergt; 中获取 IntStream?)
问题描述
我可以想到两种方法:
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);
}
什么是惯用的方式?也许已经有一个库函数可以完全满足我的要求?
What is the idiomatic way? Maybe there is already a library function that does exactly what I want?
推荐答案
我猜(或者至少是另一种选择)这种方式性能更高:
I guess (or at least it is an alternative) this way is more performant:
public static IntStream baz(List<Integer> list)
{
return list.stream().mapToInt(Integer::intValue);
}
由于函数 Integer::intValue
完全兼容 ToIntFunction
因为它需要一个 Integer
并返回一个 int
.不执行自动装箱.
since the function Integer::intValue
is fully compatible with ToIntFunction
since it takes an Integer
and it returns an int
. No autoboxing is performed.
我也在寻找 Function::identity
,我希望写一个与你的 bar
方法等效的方法:
I was also looking for an equivalent of Function::identity
, i hoped to write an equivalent of your bar
method :
public static IntStream qux(List<Integer> list)
{
return list.stream().mapToInt(IntFunction::identity);
}
但他们没有提供这个 identity
方法.不知道为什么.
but they didn't provide this identity
method. Don't know why.
这篇关于如何从 List<Integer> 中获取 IntStream?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何从 List<Integer> 中获取 IntStream?
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01