TreeMap默认按照key自然升序排序可以使用逆序降序排序
new TreeMap<String,String>(Collections.reverseOrder())
这行代码创建了一个TreeMap
对象,其中键的类型为String
,值的类型为TBEvaluationApplyBidHistory
。这个TreeMap
使用Collections.reverseOrder()
方法来定义键的自然顺序为降序。
TreeMap的基本概念和特性
- 有序性:
TreeMap
通过红黑树数据结构来维护键值对的顺序,可以保证键值对按照键的自然顺序或自定义顺序排列。 - 元素唯一性:在
TreeMap
中,每个键是唯一的,相同的键只能存储一个元素,如果插入一个已经存在的键,新的值会覆盖原有的值。 - 线程不安全:与
HashMap
类似,TreeMap
也是线程不安全的,如果在多线程环境下使用,需要进行同步处理。 - 性能优异:
TreeMap
的基本操作(如插入、查找和删除)的时间复杂度为O(log n),适合处理大量的键值对。 - 内存占用较高:由于内部采用红黑树数据结构,
TreeMap
的内存占用比HashMap
稍高。
示例代码
import java.util.Collections; import java.util.TreeMap; public class TreeMapExample { public static void main(String[] args) { // 创建一个TreeMap,键为String类型,值为TBEvaluationApplyBidHistory类型 // 使用Collections.reverseOrder()定义键的自然顺序为降序 TreeMap<String, TBEvaluationApplyBidHistory> tmap = new TreeMap<>(Collections.reverseOrder()); // 添加元素到TreeMap中 tmap.put("2023-01-01", new TBEvaluationApplyBidHistory(/* 初始化参数 */)); tmap.put("2023-02-01", new TBEvaluationApplyBidHistory(/* 初始化参数 */)); tmap.put("2023-03-01", new TBEvaluationApplyBidHistory(/* 初始化参数 */)); // 遍历TreeMap并打印结果,按键的降序排列显示 for (Map.Entry<String, TBEvaluationApplyBidHistory> entry : tmap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } }
春有百花秋有月,夏有凉风冬有雪!