List<TBmwyResolvedevicedata> dateList = new ArrayList<>();按EndTime分组并且按照升序的形式进行排序
时间: 2024-03-06 13:48:48 浏览: 68
java 中List按照date排序的实现
可以通过以下步骤来实现按EndTime分组并且按照升序的形式进行排序:
1. 将List中的元素按照EndTime属性进行分组,可以使用Java 8的Stream API中的groupingBy方法实现。
2. 将分组后的Map中的Entry对象转换为List集合。
3. 通过Collections.sort方法对List集合进行排序,排序时需要传入一个Comparator对象,可以使用Lambda表达式实现按照Entry的key升序排列。
4. 将排序后的List集合中的元素的value属性添加到新的List中。
代码示例:
```java
Map<String, List<TBmwyResolvedevicedata>> groupedMap = dateList.stream()
.collect(Collectors.groupingBy(TBmwyResolvedevicedata::getEndTime));
List<Map.Entry<String, List<TBmwyResolvedevicedata>>> entryList = new ArrayList<>(groupedMap.entrySet());
Collections.sort(entryList, (o1, o2) -> o1.getKey().compareTo(o2.getKey()));
List<TBmwyResolvedevicedata> sortedDateList = new ArrayList<>();
for (Map.Entry<String, List<TBmwyResolvedevicedata>> entry : entryList) {
List<TBmwyResolvedevicedata> valueList = entry.getValue();
Collections.sort(valueList, Comparator.comparing(TBmwyResolvedevicedata::getEndTime)); // 升序排列
sortedDateList.addAll(valueList);
}
```
其中,比较器使用了Lambda表达式实现。如果你的Java版本比较低,可以使用匿名内部类实现。
希望这个回答能够帮到你!
阅读全文