java list 存储了user对象 user对象有三个字段 id 班级 姓名 我想让班级 相同的user对象 挨在一起 就像这样 list = [{id:1, 班级:1班, 姓名:张三},{id:2, 班级:1班,姓名:李四},{id:3,班级:2班,姓名:王五,{id:4,班级3班,姓名:小王}}] 应该怎么处理List集合?有几种实现方式?请一一例举
时间: 2024-02-07 09:04:19 浏览: 168
可以使用Java 8的流式操作来实现按照班级分组的功能,具体代码如下:
```java
Map<String, List<User>> groupByClass = userList.stream()
.collect(Collectors.groupingBy(User::getClassroom));
```
上述代码中,假设`userList`是一个`List<User>`类型的列表,`User`类中包含`id`、`classroom`和`name`三个属性,其中`classroom`表示班级。`groupByClass`是一个`Map<String, List<User>>`类型的对象,键为班级名称,值为该班级下的所有`User`对象的列表。
使用Java 7及以下版本的代码实现如下:
```java
Map<String, List<User>> groupByClass = new HashMap<>();
for (User user : userList) {
String classroom = user.getClassroom();
if (groupByClass.containsKey(classroom)) {
groupByClass.get(classroom).add(user);
} else {
List<User> users = new ArrayList<>();
users.add(user);
groupByClass.put(classroom, users);
}
}
```
上述代码中,首先创建了一个空的`HashMap`对象`groupByClass`,然后遍历`userList`中的每个`User`对象,如果该班级已经存在于`groupByClass`对象中,则将该`User`对象添加到对应的列表中,否则创建一个新的列表,添加该`User`对象,并将该列表存储到`groupByClass`对象中。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)