Java List<Map<String, Object>> 按照 Map 中的 ID 字段排序
可以使用 Collections.sort 方法来对 List<Map<String, Object>> 进行排序,可以自定义比较器来实现按照 Map 中的 ID 字段排序。以下是示例代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put('ID', 3);
map1.put('name', 'John');
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put('ID', 1);
map2.put('name', 'Mike');
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put('ID', 2);
map3.put('name', 'Alice');
list.add(map3);
// 按照 ID 字段排序
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> map1, Map<String, Object> map2) {
int id1 = (int) map1.get('ID');
int id2 = (int) map2.get('ID');
return id1 - id2; // 升序排序
}
});
// 打印排序后的结果
for (Map<String, Object> map : list) {
System.out.println(map);
}
}
}
输出结果:
{ID=1, name=Mike}
{ID=2, name=Alice}
{ID=3, name=John}
上述代码中,我们通过自定义 Comparator 来实现按照 Map 中的 ID 字段进行排序。在 compare 方法中,我们将两个 Map 中的 ID 字段进行比较,如果 map1 的 ID 小于 map2 的 ID,则返回负数,如果两个 ID 相等,则返回 0,如果 map1 的 ID 大于 map2 的 ID,则返回正数。这样就可以实现按照 ID 字段的升序排序。
原文地址: https://www.cveoy.top/t/topic/qqfL 著作权归作者所有。请勿转载和采集!