我在对 java 对象进行分组时遇到问题。让我们看一下示例对象:
public class MyObject {
private String field1;
public MyObject(String field1) {
this.field1 = field1;
}
}
我想要实现的是以MyObject
这样一种方式对 's 进行分组,即每个组只包含一个具有指定field1
值的对象。例如,对于这样的元素列表:
public static void main(String[] args) {
MyObject o1 = new MyObject("1");
MyObject o2 = new MyObject("1");
MyObject o3 = new MyObject("1");
MyObject o4 = new MyObject("2");
MyObject o5 = new MyObject("2");
MyObject o6 = new MyObject("3");
List<MyObject> list = Arrays.asList(o1, o2, o3, o4, o5, o6);
List<List<MyObject>> listsWithUniqueField1Values = new ArrayList<>();
我想要listsWithUniqueField1Values
看起来像这样:
[
[
MyObject{field1='1'},
MyObject{field1='2'},
MyObject{field1='3'}
],
[
MyObject{field1='1'},
MyObject{field1='2'}
],
[
MyObject{field1='1'}
]
]
我试图通过使用java.util.stream.Collectors.groupingBy
方法以有效的方式实现它,但我失败了。