Java list 方法分组

在 Java 中,可以使用 Liststream() 方法来对列表进行操作。要按照特定条件将元素分组,可以使用 Collectors.groupingBy() 方法。

下面是一个示例代码,展示了如何根据某个属性值将 List 中的元素分组:

import java.util.*;

import java.util.stream.Collectors;

public class Main {

public static void main(String\[\] args) {

// 创建一个包含多个 Person 对象的 List

List<Person> personList = Arrays.asList(

new Person("Alice", "Female"),

new Person("Bob", "Male"),

new Person("Charlie", "Male"),

new Person("Dave", "Male")

);

// 按照 gender(性别)字段进行分组

Map<String, List<Person>> groupedPersons = personList.stream()

.collect(Collectors.groupingBy(Person::getGender));

// 输出结果

for (Map.Entry<String, List<Person>> entry : groupedPersons.entrySet()) {

System.out.println("Group by Gender: " + entry.getKey());

for (Person person : entry.getValue()) {

System.out.println("\t" + person);

}

System.out.println();

}

}

}

class Person {

private String name;

private String gender;

public Person(String name, String gender) {

this.name = name;

this.gender = gender;

}

public String getName() { return name; }

public String getGender() { return gender; }

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", gender='" + gender + '\'' +

'}';

}

}

运行上述代码会得到类似于以下输出:

Group by Gender: Male

Person{name='Bob', gender='Male'}

Person{name='Charlie', gender='Male'}

Person{name='Dave', gender='Male'}

Group by Gender: Female

Person{name='Alice', gender='Female'}

相关推荐
csdn2015_1 小时前
springboot读取配置的方法
java·spring boot·spring
AOwhisky2 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
云云只是个程序马喽3 小时前
海外短剧平台搭建方案:私有化源码系统选型|云微短剧系统技术架构拆解
java·php
C137的本贾尼4 小时前
第七篇:消息队列(MQ)——就是个带存储的异步通信管道
java·开发语言·中间件
Flittly5 小时前
【AgentScope Java新手村系列】(19)多模态-图像音频视频
java·spring boot·spring
Javatutouhouduan5 小时前
国内大厂Java面试高频题库(2026突击版)
java·架构师·java面试·java面试题·后端开发·java程序员·java八股文
Tim_105 小时前
【C++】017、new/delete与malloc/free的区别
java·数据结构·算法
青山木5 小时前
一把 Redis 分布式锁,踩透四个坑:锁争抢、僵尸锁、锁过期、锁丢失
java·数据库·redis·后端
Java内核笔记5 小时前
万字避坑!Spring Boot 3.x 升 4.0 最全升级指南(附 Migration Checklist,建议收藏⭐)
java·后端
从零开始的代码生活_5 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list