首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Groovy中使用多个groupBy和max

在Groovy中,我们可以使用多个groupBy和max函数来实现对数据集进行多重分组和获取最大值的操作。

首先,groupBy函数可以用于对数据集按照指定的属性进行分组。我们可以使用collect方法结合groupBy函数来实现多个groupBy的效果。下面是一个示例代码:

代码语言:txt
复制
def data = [
    [name: "Alice", age: 25, city: "Beijing"],
    [name: "Bob", age: 30, city: "Shanghai"],
    [name: "Alice", age: 35, city: "Beijing"],
    [name: "Bob", age: 40, city: "Shanghai"],
    [name: "Alice", age: 45, city: "Beijing"]
]

def result = data.groupBy { it.name }.collectEntries { k, v ->
    [k, v.groupBy { it.city }]
}

println result

上述代码将根据姓名和城市对数据进行分组,并输出结果:

代码语言:txt
复制
[
    Alice: [
        Beijing: [
            [name: Alice, age: 25, city: Beijing],
            [name: Alice, age: 35, city: Beijing],
            [name: Alice, age: 45, city: Beijing]
        ]
    ],
    Bob: [
        Shanghai: [
            [name: Bob, age: 30, city: Shanghai],
            [name: Bob, age: 40, city: Shanghai]
        ]
    ]
]

接下来,我们可以使用max函数来获取每个分组中的最大值。再次利用collect方法,可以实现对多个分组的最大值获取。以下是示例代码:

代码语言:txt
复制
def data = [
    [name: "Alice", age: 25, city: "Beijing"],
    [name: "Bob", age: 30, city: "Shanghai"],
    [name: "Alice", age: 35, city: "Beijing"],
    [name: "Bob", age: 40, city: "Shanghai"],
    [name: "Alice", age: 45, city: "Beijing"]
]

def result = data.groupBy { it.name }.collectEntries { k, v ->
    [k, v.groupBy { it.city }.collectEntries { k2, v2 ->
        [k2, v2.max { it.age }]
    }]
}

println result

上述代码将获取每个姓名分组中每个城市分组的年龄最大值,并输出结果:

代码语言:txt
复制
[
    Alice: [
        Beijing: [name: Alice, age: 45, city: Beijing]
    ],
    Bob: [
        Shanghai: [name: Bob, age: 40, city: Shanghai]
    ]
]

通过以上示例代码,我们可以在Groovy中使用多个groupBy和max函数实现多重分组和获取最大值的操作。在实际应用中,可以根据具体需求进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分20秒

IC测试工程师:深入了解SiC芯片Pogo-Pin测试及Test Socket的用途

7分44秒

087.sync.Map的基本使用

6分9秒

054.go创建error的四种方式

7分8秒

059.go数组的引入

2分7秒

基于深度强化学习的机械臂位置感知抓取任务

5分24秒

074.gods的列表和栈和队列

2时1分

平台月活4亿,用户总量超10亿:多个爆款小游戏背后的技术本质是什么?

1分55秒

uos下升级hhdesk

50秒

DC电源模块的体积与功率之间的关系

59秒

BOSHIDA DC电源模块在工业自动化中的应用

48秒

DC电源模块在传输过程中如何减少能量的损失

3分59秒

基于深度强化学习的机器人在多行人环境中的避障实验

领券