【发布时间】:2018-04-21 09:38:02
【问题描述】:
我希望为现有列表创建一个历史值列表,以便我可以将其保存在数据库中以便稍后在表格中显示
Class Data {
Date date;
int int1;
int int2;
}
class DataHistory {
Date date;
int sum_Int1_beforeOrEqualDate;
int sum_Int2_beforeOrEqualDate;
String someOtherValues;
}
例如,我有几行 perDate 包含所有值。我想要实现的是:
我的意见:
date, int1, int2
01/01/18, 2, 3
01/01/18, 0, 1
02/01/18, 0, 1
02/01/18, 3, 0
03/01/18, 1, 3
...
我的输出:
date, sum_Int1_beforeOrEqualDate, sum_Int2_beforeOrEqualDate
01/01/18, 2, 4
02/01/18, 3, 1
03/01/18, 1, 3
...
我尝试了几件事,主要是使用 Map,但从未能够使用 List-->List 做到这一点。
我尝试做的是:
编辑:我的最后一次尝试,清楚地表明我不知道自己在做什么..
List<OutputList> outputList =
inputlist
.stream()
.map( e -> new DataHistory())
.collect(Collectors.groupingBy(int1));
【问题讨论】:
-
展示您尝试过的内容以更好地说明您的描述。
-
这两个总和字段将如何计算?
-
您将如何提供输入,通过控制台一一输入值或通过文件提供输入?
-
我的输入值来自数据库中的数据实体。 @Aris :它只是之前或相等日期之前所有先前值的总和
-
我的第一步是抛弃过时的
Date类,并从java.time引入LocalDate。java.time是现代 Java 日期和时间 API,使用起来更方便。一个Date尽管它的名字是一个毫秒精度的时间点,所以在同一日期有很多,这可能会给过滤带来麻烦。
标签: java arrays date arraylist java-stream