Java使用lamdba表示式如何对集合中对象中的集合对象 根据集合中对象与集合中对象中的集合对象进行排序
时间: 2024-03-09 19:51:15 浏览: 51
如果我们想要对集合中对象中的集合对象进行排序,需要首先确定排序依据。假设我们要按照集合中对象的属性和集合中对象中的集合对象的大小进行排序,可以按照以下方式实现:
```
List<MyObject> myList = ...; // 假设我们有一个 MyObject 类型的列表
Comparator<MyObject> comparator = Comparator.comparingInt(obj -> obj.getMyProperty());
comparator = comparator.thenComparing(Comparator.comparingInt(obj -> obj.getMyPropertySet().size()));
myList.sort(comparator);
```
其中,`myList` 是我们要处理的列表,`getMyProperty()` 是每个对象的属性,`getMyPropertySet()` 是每个对象的属性集合。使用 `Comparator.comparingInt()` 方法创建一个比较器,将每个元素映射为它的属性或属性集合中元素的个数作为排序依据,然后使用 `thenComparing()` 方法将两个比较器合并为一个复合比较器,以实现对多个条件的排序,最后使用 `sort()` 方法对列表进行排序。
需要注意的是,使用 Lambda 表达式时,需要引入相应的类和方法,例如 `java.util.List` 和 `java.util.Comparator`。
阅读全文