首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
codeismylife
V2EX  ›  问与答

初学 Java 的 lambda,求教怎么把一个 list 按照条件分割成两个 list。

  •  
  •   codeismylife · 277 天前 · 2076 次点击
    这是一个创建于 277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如{0,1,2,3,4,5,6,7,8,9}这个集合,条件是 是否大于 6,分割成两个集合然后放在 map 里。例如:Map<Boolean,List<Integer>>,true 的就是大于 6 的,false 的就是小于 6 的。我会用两次 filter 来实现,但是不知道怎么用一行 lambda 来实现。请教各位,不胜感激。
    8 条回复    2019-07-05 03:57:20 +08:00
    Kyle18Tang
        1
    Kyle18Tang   277 天前 via Android
    groupby
    codeismylife
        2
    codeismylife   277 天前
    @Kyle18Tang groupby 能按照条件分组吗?具体怎么写呢?
    npe
        3
    npe   277 天前
    filter 就可以了,groupBy 只是分组
    codeismylife
        4
    codeismylife   277 天前
    @npe 可是 filter 只能筛出一部分来,我想用一行 lambda 代码返回一个这样的 Map<Boolean,List<Integer>>。能请教一下如何写吗?
    terry0314
        5
    terry0314   277 天前   ❤️ 2
    list.stream().collect(Collectors.groupingBy(n -> n > 6, Collectors.toList()))
    codeismylife
        6
    codeismylife   277 天前
    @terry0314 你这个可以。谢谢。
    Kyle18Tang
        7
    Kyle18Tang   277 天前
    @codeismylife #2 5 楼正解。
    linuxsteam
        8
    linuxsteam   275 天前 via Android
    @codeismylife 这个会返回 true flase 吗 不是还需要手动放到 map ?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2315 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:20 · PVG 00:20 · LAX 09:20 · JFK 12:20
    ♥ Do have faith in what you're doing.