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

java每月跟踪器

祝高阳
2023-03-14
   Date     Name   Sale  Discount  Product
2021-02-01   LV    143     14       P1
2021-02-18   PS    473     25       P2
2021-02-01   LV    65      5        P3
2021-02-22   XB    143     14       P1
2021-02-27   PS    143     14       P1
2021-03-03   LV    263     46       P3
2021-03-16   XB    765     38       P2

共有1个答案

容学林
2023-03-14

除了map,您还可以使用现代的日期时间API和streamAPI。

您可以定义数据类,如下所示

class Transaction {
    LocalDate date;
    String name;
    int sale;
    int discount;
    String product;
    YearMonth tranYearMon;

    public Transaction(LocalDate date, String name, int sale, int discount, String product) {
        this.date = date;
        this.name = name;
        this.sale = sale;
        this.discount = discount;
        this.product = product;
        this.tranYearMon = YearMonth.of(date.getYear(), date.getMonth());
    }

    // Getters, setters, toString etc.
}

现在,在processing类中,您可以将数据分组,如

import java.time.LocalDate;
import java.time.YearMonth;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Transaction> list = List.of(
                    new Transaction(LocalDate.parse("2021-02-01"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-02-18"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-02-01"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-02-22"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-02-27"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-03-03"), "LV", 143, 14, "P1"),
                    new Transaction(LocalDate.parse("2021-03-16"), "LV", 143, 14, "P1")
                );
        
        Map<YearMonth, List<Transaction>> map = list.stream().collect(Collectors.groupingBy(t ->t.getTranYearMon()));
        System.out.println(map);
    }
}
 类似资料:
  • 跟踪行为控制着 Entity Framework Core 是否会在其变更跟踪器里维持实体实例的信息。如果实体是被跟踪的,任何检测到的该实体的变更都将在 SaveChanges() 时持久化到数据库中。Entity Framework Core 还会对已跟踪的、之前已加载到 DbContext 实例中的查询和实体进行相互的导航属性装配。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。

  • Trace 事件提供了一种机制,可以集中由 V8,Node 核心, 以及用户代码生成的跟踪信息。 启动 Node.js 应用时添加 --trace-events-enabled 标记,可以启用 Tracing. 可以通过在 --trace-event-categories 标记后跟一个用逗号分隔的类别名称列表, 来指定特定的跟踪记录集合。 node 和 v8 默认启用。 node --trace-

  • 跟踪配置指定了Envoy使用的HTTP跟踪器的全局设置。在服务的顶层配置上定义。未来,Envoy可能会支持其他跟踪器,但现在HTTP跟踪器是唯一支持的跟踪器。 { "http": { "driver": "{...}" } } http (optional, object) 提供HTTP跟踪器的配置。 driver (optional, object) 提供处理跟踪和创建span

  • 概述 分布式跟踪使开发人员可以在大型面向服务的体系结构中获得调用流的可视化。在理解序列化,并行性和延迟来源方面,这是非常宝贵的。Envoy支持系统范围与跟踪相关的三个功能: 请求ID生成:Envoy将在需要时生成UUID并填充x-request-id HTTP头。 应用程序可以转发x-request-id头以进行统一日志记录以及跟踪。 外部跟踪服务集成:Envoy支持可插入的外部跟踪可视化提供程序

  • Bug跟踪是一个宽泛的话题;贯穿本书会讨论此问题的各个方面。尽管这里我们要着重于配置和技术因素,但是首先要从一个策略问题开始:Bug跟踪系统中应该包含哪些信息? 术语Bug跟踪很有误导性。Bug跟踪系统也通常会用来跟踪哪些初始与结束状态不同,包含可选的中间状态,并在生命周期中积累信息的问题,例如新特性请求、一次性任务以及被动性的补丁。由于这些原因,Bug跟踪也被称为问题跟踪(issue track

  • 异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 上面程序中 main 方法调用 firstMethod,firstMethod 调用 secondMethod,secondMethod 调用 t