排序一个ArrayList<HashMap<String, String>>
可以按照以下步骤进行:
ArrayList
中的每个HashMap
提取出来,并保存在一个新的列表中。Comparator
接口的自定义比较器。比较器将按照指定的键对HashMap
进行比较。Collections.sort()
方法和自定义比较器对新的列表进行排序。ArrayList
中。以下是一个示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 创建一个示例的ArrayList<HashMap<String, String>>
ArrayList<HashMap<String, String>> list = new ArrayList<>();
HashMap<String, String> map1 = new HashMap<>();
map1.put("name", "John");
map1.put("age", "25");
list.add(map1);
HashMap<String, String> map2 = new HashMap<>();
map2.put("name", "Alice");
map2.put("age", "30");
list.add(map2);
// 提取HashMap,保存到新的列表中
ArrayList<HashMap<String, String>> extractedList = new ArrayList<>();
for (HashMap<String, String> map : list) {
extractedList.add(map);
}
// 创建自定义比较器
Comparator<HashMap<String, String>> comparator = new Comparator<HashMap<String, String>>() {
@Override
public int compare(HashMap<String, String> map1, HashMap<String, String> map2) {
// 根据name键进行比较
String name1 = map1.get("name");
String name2 = map2.get("name");
return name1.compareTo(name2);
}
};
// 对提取的列表进行排序
Collections.sort(extractedList, comparator);
// 将排序后的列表重新放入原始的ArrayList
list.clear();
for (HashMap<String, String> map : extractedList) {
list.add(map);
}
// 打印排序后的结果
for (HashMap<String, String> map : list) {
System.out.println(map);
}
}
}
此示例将按照"name"键对ArrayList
中的HashMap
进行排序。你可以根据具体需求修改比较器的逻辑,以按照其他键进行排序。
领取专属 10元无门槛券
手把手带您无忧上云