我有一个需要管理某些项目的优先级队列的应用程序,其中优先级本身实际上可以是小数(如 2.4 或 0.3)。与通常的整数优先级一样,越小越好。以下单行生成一个伪均匀分布在和之间的DoubleStream
带有DEFAULT_CAPACITY
- 多s 的:double
0
SCALE
DoubleStream priorities = IntStream.range(0, DEFAULT_CAPACITY).map(_ -> r.nextDouble() * SCALE);
我的问题是:如何避免_
lambda 中作为参数给出的未命名参数map
?不幸的是,Random::nextDouble()
is not static
,所以方法引用是不可能的。
当然,这个问题概括了:缺少static
方法并且给定已知的迭代次数,我们如何避免不必要的未命名 lambda 参数?实际上,实际上不需要生成中间件Stream
(调用的结果)。IntStream::range()
// 编辑:在仔细查看我的 IDE 之后,我注意到上面的语法实际上从 Java 9 开始就不可编译了!编译器说:从 Java 9 开始,'_' 是关键字,不能用作标识符。所以这个问题现在对我来说更加重要:)