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'}

相关推荐
Appreciate(欣赏)9 分钟前
JAVA使用poi类读取xlxs文件内容拼接成添加数据SQL
java·开发语言·sql
极光代码工作室36 分钟前
基于SpringBoot的流浪狗管理系统的设计与实现
java·spring boot·后端
毕设源码-朱学姐37 分钟前
【开题答辩全过程】以 基于JAVA的恒星酒店客房管理系统为例,包含答辩的问题和答案
java·开发语言
思密吗喽40 分钟前
景区行李寄存管理系统
java·开发语言·spring boot·毕业设计·课程设计
gladiator+1 小时前
Redis之BigKey的常见问题以及大厂相关面试题
java·数据库·redis
无限进步_1 小时前
C语言数组元素删除算法详解:从基础实现到性能优化
c语言·开发语言·windows·git·算法·github·visual studio
Controller-Inversion2 小时前
岛屿问题(dfs典型问题求解)
java·算法·深度优先
okseekw2 小时前
Java 字符串三巨头:String、StringBuilder、StringJoiner —— 初学者避坑指南 🤯
java
毕设源码余学姐2 小时前
计算机毕设 java 中医药药材分类采购网站 SSM 框架药材交易平台 Java 开发的分类采购与订单管理系统
java·开发语言·课程设计
BD_Marathon2 小时前
【JUC】并发与并行
java