当前位置: 首页 > 知识库问答 >
问题:

Java集合约简成映射

潘意
2023-03-14

我有一个map对象列表,如下所示:

year  => 2016,
month => 10,
day   => 11,
count => 123

startdate<enddate范围内,每天都有一个元素。

我希望能够根据startdateenddate之间的间隔将这些元素减少到不同的时态分组中。如果startdateenddate之间的差异大于4年,我希望将它们分组为年。如果差异小于四年,但大于一年,我想把它们分成几个月。如果小于一年,但大于一个月,我想分成几周。任何少于一个月的,不需要分组。

当我说“group”时,我的意思是我想总结属于特定年份的所有东西的count元素(使用上面的第一个示例),并为每个年份返回如下所示的单个映射:

year   => 2016,
month  => 1
day    => 1
count  => 9897

我知道一定有一个优雅的方法来实现这一点,但我很难把我的大脑围绕在逻辑上。

共有1个答案

诸超
2023-03-14

我不明白,你可以简单地做:

if(starDate is smaller then endDate by 4 year) {

              resultMap = yourList.stream()
                      .collect(Collectors.groupingBy(map.get("year"),
                           Collectors.summingInt(map.get("count")));

}

else if(starDate is... another condition) {
      resultMap = yourList.stream()
                      .collect(Collectors.groupingBy(map.get("month"),
                           Collectors.summingInt(map.get("count")));

}

// all the there cases...

稍后,将此结果映射到您想要的任何内容。

 类似资料:
  • 主要内容:集合类型,以下是纠正/补充内容:集合(Collection)是一个将多个对象分组为一个单元的java框架。它用于存储,检索和操作汇总数据。 在JPA中,可以使用集合来持久化包装类和String的对象。JPA允许三种对象存储在映射集合中 - 基本类型,实体和嵌入式类型。 集合类型 根据要求,我们可以使用不同类型的集合来持久化对象。如下所示 - List Set Map 包中包含集合框架的所有类和接口。 以下是纠正/补充内容: 根据

  • 开发人员可以选择三种语言来编写智能合约: 1.solidity,以太坊的旗舰语言,也是开发智能合约最流行的语言。 2.Serpent,一个用于编写智能合约的Python语言。 3.类LISP语言(LLL),低级语言,Serpent提供了LLL的超集。使用LLL的信息不多,这个博客/var/log/syrinx和github相关的库lll-resurrected GitHub不错,可以参考参考。 为

  • 给定以下类的,使用Java 8 lambda,我希望获得的,每个帐户类型一个。 到目前为止,我使用以下代码按对进行分组。 如何返回,将列表从每个映射键传递到构造函数中,其中包含每个中的一个?

  • 主要内容:集合映射实例,程序输出结果集合(Set)是一个包含唯一元素的接口。 这些元素不保留任何顺序。当需要以无序方式检索唯一元素时,可以使用。 完整的项目目录结构如下所示 - 集合映射实例 在这个例子中,我们将一个对象嵌入到一个实体类中,并将其定义为一个集合类型 - 。 这个例子包含以下步骤 - 第1步: 在包下创建一个实体类,这个类包含员工, 和嵌入对象(员工地址)。注解 表示嵌入对象。 文件:Employee.java 的代码

  • 你可以定义一个新的名或从下拉式菜单中选择导入到现有的表或集合。 【注意】如果你在“目标表”或“目标集合”输入一个新的名,在“是新的”内的框将会自动显示为“是”。 导入多个表或集合时,所有表或集合会显示在列表中。

  • 在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗