- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
假设我有一个 Java IntStream,是否可以将其转换为具有累积和的 IntStream?例如,以 [4, 2, 6, ...] 开头的流应转换为 [4, 6, 12, ...]。
更一般地说,应该如何实现有状态的流操作?感觉这应该是可能的:
myIntStream.map(new Function<Integer, Integer> {
int sum = 0;
Integer apply(Integer value){
return sum += value;
}
);
有一个明显的限制,即这只适用于顺序流。但是,Stream.map 明确需要无状态映射函数。我是否错过了 Stream.statefulMap 或 Stream.cumulative 操作,还是错过了 Java 流的要点?
以 Haskell 为例,scanl1 函数正好解决了这个例子:
scanl1 (+) [1 2 3 4] = [1 3 6 10]
最佳答案
你可以用原子序数来做到这一点。例如:
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.IntStream;
import java.util.stream.LongStream;
public class Accumulator {
public static LongStream toCumulativeSumStream(IntStream ints){
AtomicLong sum = new AtomicLong(0);
return ints.sequential().mapToLong(sum::addAndGet);
}
public static void main(String[] args){
LongStream sums = Accumulator.toCumulativeSumStream(IntStream.range(1, 5));
sums.forEachOrdered(System.out::println);
}
}
这个输出:
1
3
6
10
我使用 Long 来存储总和,因为两个 int 加起来完全有可能远远超过 Integer.MAX_VALUE
,并且 long 溢出的可能性较小。
关于java - 流状态计算 : cumulative sums,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28355684/
我想像以前使用 Tableau 软件一样使用功率查询进行运行总计。有没有人有想法,提前致谢! 最佳答案 为迟到的答案道歉 - 这个挑战已经困扰了我好几个月了。 论坛和博客上很少有解决方案,但它们似乎都
我有数据 dat <- data.frame(t=1:100,y=rnorm(100),x1=rnorm(100)),x2=rnorm(100)) 其中 t 给出时间点。我想根据前面的时间点在每个时
是否有内置的 pandas 方法来查找两个 pandas 系列之间的累积相关性? 它应该做的是有效地修复 pandas.rolling_corr(data, window) 中窗口的左侧,以便窗口的宽
我有一个连接到 Google Data Studio 的 MySQL 数据库,其中包含“日期”和“新用户”列。 “新用户”列显示每天的新用户数。 我想绘制一张相对于日期的累计用户数的图表。这在电子表格
假设我有一个Java IntStream,是否可以将其转换为具有累积和的IntStream?例如,以 [4, 2, 6, ...] 开头的流应转换为 [4, 6, 12, ...]。 更一般地说,应该
我有一个这样的数组: [30, 10, 4, 3, 3] 我需要将其转换为一个 cumulative% 数组,每个值都是到那里的所有值的总和除以数组中所有值的总和。 在本例中,总数为 50。因此,第一
假设我有一个 Java IntStream,是否可以将其转换为具有累积和的 IntStream?例如,以 [4, 2, 6, ...] 开头的流应转换为 [4, 6, 12, ...]。 更一般地说,
我有一个数据框如下。按time列排序。 输入 - df = data.frame(time = 1:20, grp = sort(rep(1:5,4)),
我是 R 的新手。我不确定如何在 R 中执行以下功能。我可以在 excel 中执行此操作。但无法在 R 中完成。有人可以帮助我吗? 我想得到计数器值达到64后的累加和, 以下是我的数据, x 57 5
我的目标是按日期累计注册用户数 这是我的mysql sql SELECT MONTH( DATE ) AS `month`, COUNT(userid) FROM `stats` WHERE `u
我有一个按月-年字符串属性排序的对象列表。我的对象类定义看起来像 Public class Obj{ String year; Long membercount; Long n
我有一个像这样的向量 v <- c(76, 31, 33, 7) 并且需要计算其导致的“累积差” cumdiff <- c(45, 12, 5) 这是 76 - 31 = 45 和 45 - 33 =
假设我有一个奖项的 SQL 表,其中包含日期和金额字段。我需要生成一个表格,其中包含一系列连续日期、每天奖励的金额以及运行(累计)总数。 Date Amount_Total Amo
我们有如下数据框: +------+--------------------+ | Flag | value| +------+--------------------+
我正在计算“第一”位置总计列(下表)的值,并希望使用多个条件来执行此操作。 我希望总“第一”位置能够反射(reflect)特定运动员赢得比赛的次数(截至特定日期)。 例如...见下文,当运动员 = S
我正在计算“第一”位置总计列(下表)的值,并希望使用多个条件来执行此操作。 我希望总“第一”位置能够反射(reflect)特定运动员赢得比赛的次数(截至特定日期)。 例如...见下文,当运动员 = S
我有像这样的一系列累积值: 1821, 2015-01-26 22:14:42+02:00, 24574.7 1822, 2015-01-26 22:15:05+02:00, 24574.7 1823
我试图在二叉索引树 (BIT) 中找到具有给定累积频率的索引。 我能够在 O(log(n)*log(n)) 中解决这个问题,方法是借助二分搜索和计算任何索引处的累积频率的函数来实现它。 但我想在 O(
我是 Python Pandas 的新手,因此无法找到与许多普通 SQL 操作等效的句法。给定玩具场景: id rank ts alive 1 1 201
我想提高我的谷歌页面速度结果。我发现我的主要问题之一是 Cumulative Layout Shift。我意识到这个问题是由 cookie 和促销弹出窗口引起的。 您有任何解决此 google 页面速
我是一名优秀的程序员,十分优秀!