V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Rookbyte
V2EX  ›  Java

想使用 java8 的 stream,将数据按照时间段进行分组,数据请看图片

  •  
  •   Rookbyte · Feb 19, 2019 · 4403 views
    This topic created in 2634 days ago, the information mentioned may be changed or developed.

    https://i.loli.net/2019/02/19/5c6c005354ef4.jpg

    业务是如果查询最近七天的注册用户,我要将数据安装最近的七个自然日分组,我只会写这样的 list.stream().collect(Collectors.groupingBy(Apple::getId)),还请各位大佬帮忙看下如何处理

    5 replies    2019-02-20 10:58:08 +08:00
    TigerWoods
        1
    TigerWoods  
       Feb 19, 2019 via Android
    grohoBy 的参数是一个 Function,你自己写一个 lambda 实现,入参 apple 出参为年月日的字符串。
    vHypnos
        2
    vHypnos  
       Feb 20, 2019
    先不关注技术问题,你把真实电话号码贴在这里真的好吗。
    vHypnos
        3
    vHypnos  
       Feb 20, 2019   ❤️ 2
    Map<LocalDate, List<Item>> result = list.stream().collect(Collectors.groupingBy(item -> item.getCreateTime().with(TemporalAdjusters.previousOrSame(DayOfWeek.of(1)))));
    Rookbyte
        4
    Rookbyte  
    OP
       Feb 20, 2019
    @vHypnos 哈哈,测试数据,没事的。下次会注意的
    tamer
        5
    tamer  
       Feb 20, 2019
    ```
    Map<DayOfWeek, List<LocalDate>> collect = lis.stream().collect(Collectors.groupingBy(item -> DayOfWeek.from(item.getCreateTime())));
    ```
    参考#3 感恩 又学习到了新姿势 @vHypnos
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5824 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 02:40 · PVG 10:40 · LAX 19:40 · JFK 22:40
    ♥ Do have faith in what you're doing.