能够排序的Map实现类TreeMap类
来源:互联网 发布:新的淘宝店铺如何推广 编辑:程序博客网 时间:2024/06/06 16:27
1 TreeMap类的介绍
Map接口派生了一个SortedMap子接口,SortedMap有一个TreeMap实现类。
TreeMap是基于红黑树对TreeMap中所有key进行排序,从而保证TreeMap中所有key-value对处于有序状态。TreeMap也有两种排序方式:
- 自然排序:TreeMap的所有key必须实现Comparable接口,而且所有key应该是同一个类的对象,否则将会抛出ClassCastException异常。
- 定制排序:创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中所有key进行排序。采用定制排序时不要求Map的key实现Comparable接口。
2 代码示例
import java.util.*;class R implements Comparable{int count;public R(int count){this.count = count;}public String toString(){return "R[count:" + count + "]";}// 根据count来判断两个对象是否相等。public boolean equals(Object obj){if (this == obj)return true;if (obj != null&& obj.getClass() == R.class){R r = (R)obj;return r.count == this.count;}return false;}// 根据count属性值来判断两个对象的大小。public int compareTo(Object obj){R r = (R)obj;return count > r.count ? 1 :count < r.count ? -1 : 0;}}public class TreeMapTest{public static void main(String[] args){TreeMap tm = new TreeMap();tm.put(new R(3) , "兰花");tm.put(new R(-5) , "龟背竹");tm.put(new R(9) , "紫罗兰");System.out.println(tm);// 返回该TreeMap的第一个Entry对象System.out.println(tm.firstEntry());// 返回该TreeMap的最后一个key值System.out.println(tm.lastKey());// 返回该TreeMap的比new R(2)大的最小key值。System.out.println(tm.higherKey(new R(2)));// 返回该TreeMap的比new R(2)小的最大的key-value对。System.out.println(tm.lowerEntry(new R(2)));// 返回该TreeMap的子TreeMapSystem.out.println(tm.subMap(new R(-1) , new R(4)));}}
3 运行结果
{R[count:-5]=龟背竹, R[count:3]=兰花, R[count:9]=紫罗兰}
R[count:-5]=龟背竹
R[count:9]
R[count:3]
R[count:-5]=龟背竹
{R[count:3]=兰花}
4 代码分析
上面示例以自然排序为例,介绍TreeMap的基本用法。
0 0
- 能够排序的Map实现类TreeMap类
- 能够排序的Map实现类TreeMap类
- Map(3)--treeMap的排序
- TreeMap中如何实现自定义类key值的排序
- TreeMap排序和Map的遍历
- Map 排序 TreeMap 陷阱
- Map接口的实现类--Hashtable和HashMap及TreeMap的区别--------(java复习)
- Map接口的实现类,HashMap 和 TreeMap 的区别是什么! day=11.24
- java学习之Map接口以及实现类HashMap,TreeMap的使用
- Map ,HashMap , TreeMap , TreeMap 默认排序
- Map ,HashMap , TreeMap , TreeMap 默认排序
- JAVA的Map类:HashMap,LinkedHashMap,TreeMap,ConcurrentHashMap,WeakReferenceHashMap
- C#实现字符串数组的TreeMap排序
- Java中对Map(HashMap,TreeMap,Hashtable等)的排序
- 关于map的数据排序问题(hashmap,treemap)
- Java中对Map(HashMap,TreeMap,Hashtable等)的排序
- 【Java基础】Map集合简介 排序的集合TreeMap
- 深入浅出 Map 的实现(HashMap、HashTable、LinkedHashMap、TreeMap)
- orcale 常用功能语句
- Java 8中的HashMap类和Hashtable类
- [资源] 优秀博客和常用插件
- Invocation of init method failed; nested exception is java.lang.NoSuchMethod
- 编辑距离
- 能够排序的Map实现类TreeMap类
- ESP8266与NodeMCU开发(一)环境搭建
- WeakHashMap类
- Spring事务管理实现方式之编程式事务与声明式事务详解
- 阿里服务器CentOS 6.5 更新gcc 从4.4.7 到 4.8.0
- IdentityHashMap类——保证Map中元素严格相等
- Spring@Autowired注解与自动装配
- mysql存储过程
- Deque与LinkedBlockingDeque深入分析