list自定义对象属性分组java
时间: 2023-08-13 20:03:12 浏览: 40
在Java中,您可以使用Java 8中的`Stream API`来将自定义对象属性分组。假设您有一个自定义对象类`MyObject`,其中包含属性`group`,您可以按照该属性来进行分组。以下是一个示例代码:
```java
import java.util.*;
import java.util.stream.Collectors;
class MyObject {
private String name;
private String group;
public MyObject(String name, String group) {
this.name = name;
this.group = group;
}
public String getName() {
return name;
}
public String getGroup() {
return group;
}
}
public class GroupingListObjects {
public static void main(String[] args) {
List<MyObject> myObjects = Arrays.asList(new MyObject("Obj1", "Group1"),
new MyObject("Obj2", "Group2"),
new MyObject("Obj3", "Group1"),
new MyObject("Obj4", "Group2"));
Map<String, List<MyObject>> groupedObjects =
myObjects.stream().collect(Collectors.groupingBy(MyObject::getGroup));
System.out.println(groupedObjects);
}
}
```
这将输出一个`Map`,其中键是每个组的名称,值是该组中的所有对象。在此示例中,输出将是:
```
{Group1=[MyObject{name='Obj1', group='Group1'}, MyObject{name='Obj3', group='Group1'}],
Group2=[MyObject{name='Obj2', group='Group2'}, MyObject{name='Obj4', group='Group2'}]}
```
其中包含两个组,一个名为'Group1',包含两个对象,另一个名为'Group2',也包含两个对象。