以下是一个示例代码,演示如何按照另一个列表对TreeMap进行排序:
import java.util.*;
public class TreeMapSortingExample {
public static void main(String[] args) {
// 创建一个需要排序的TreeMap
TreeMap treeMap = new TreeMap<>();
treeMap.put("Apple", 50);
treeMap.put("Banana", 20);
treeMap.put("Orange", 30);
treeMap.put("Grapes", 40);
// 创建一个用于排序的列表
List sortList = new ArrayList<>();
sortList.add("Grapes");
sortList.add("Orange");
sortList.add("Apple");
sortList.add("Banana");
// 创建一个自定义比较器,根据排序列表的顺序进行比较
Comparator comparator = (o1, o2) -> {
int index1 = sortList.indexOf(o1);
int index2 = sortList.indexOf(o2);
return Integer.compare(index1, index2);
};
// 使用自定义比较器对TreeMap进行排序
TreeMap sortedTreeMap = new TreeMap<>(comparator);
sortedTreeMap.putAll(treeMap);
// 打印排序后的结果
for (Map.Entry entry : sortedTreeMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
这个示例首先创建了一个需要排序的TreeMap,并向其中添加了一些键值对。然后创建了一个用于排序的列表,这个列表定义了按照哪个顺序进行排序。接下来创建了一个自定义比较器,该比较器根据排序列表的顺序进行比较。最后,使用自定义比较器创建一个新的TreeMap实例,并通过putAll()
方法将原始的TreeMap中的元素按照排序顺序放入新的TreeMap中。最后,遍历新的TreeMap并打印排序后的结果。
上一篇:按照另一个列表对列表进行排序
下一篇:按照另一个列表来过滤一系列列表