排序一个LIst<Map<String,String>>,首先根据字段updateDate,如果updateDate相同就根据isCommon
时间: 2024-11-25 14:17:06 浏览: 5
mysql 从一个表中查数据并插入另一个表实现方法
5星 · 资源好评率100%
排序一个 `List<Map<String, String>>` 根据指定字段和规则可以分为两步。首先,你需要按照 `updateDate` 进行自然排序,如果遇到更新日期相同的Map,接着再根据 `isCommon` 字段来进行进一步排序。这通常需要自定义一个比较器(Comparator),因为 Java 的 List 默认按元素自然顺序排序,不支持复杂条件下的定制排序。
以下是一个示例:
```java
import java.util.Comparator;
import java.text.SimpleDateFormat;
import java.util.Date;
// 假设你的 Map 结构里有 updateDate 和 isCommon 属性
class MyMap implements Comparable<MyMap> {
private Date updateTime;
private boolean isCommon;
// 构造函数、getter 等...
@Override
public int compareTo(MyMap other) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 按照 updateDate 进行排序
int compareUpdate = this.updateDate.compareTo(other.updateDate);
if (compareUpdate == 0) { // 如果日期相同
// 按照 isCommon 字段进行排序,这里假设 true 在前,false 在后
return Integer.compare(this.isCommon ? 1 : -1, other.isCommon ? 1 : -1);
}
return compareUpdate; // 否则直接返回日期比较结果
}
}
public class Main {
public static void sortList(List<MyMap> list) {
list.sort(Comparator.comparing(MyMap::getUpdateTime));
}
// 使用方法
public static void main(String[] args) {
List<MyMap> list = ... // 初始化你的列表
sortList(list);
}
}
```
阅读全文