java 的TreeMap
TreeMap 类不仅实现了 Map 接口,还实现了 Map 接口的子接口 java.util.SortedMap。
TreeMap 类中不允许键对象为 null 或是 基本数据类型,这是因为 TreeMap 中的对象必须是可排序的(即对象需要实现 java.lang.Comparable 接口)
在创建 TreeMap 对象时,如果使用参数为空的构造方法,则根据 Map 对象的 key 进行排序;如果使用参数为 Comparator 的构造方法,则根据 Comparator 进行排序。
在添加、删除和定位映射关系上,TreeMap类要比HashMap类的性能差一些,但是其中的映射关系具有一定的顺序。
如果不需要一个有序的集合,则建议使用HashMap类;如果需要进行有序的遍历输出,则建议使用TreeMap类。
在这种情况下,可以先使用 HashMap。在需要排序时,利用现有的 HashMap,创建一个 TreeMap 类型的实例。
如一个服务器接受的参数:name, age, sex , token。token的值等于各个参数名的升序排序值的组合在加上客户密码的md5值,
在这里是 token=md5(age + name + sex + password)。这时 TreeMap 就可以用上场,参数排序可以用下面的代码获取(这里举的例子参数比较少,参数比较多时更能体现TreeMap的作用):
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "darcy");
map.put("age", 18);
map.put("sex", "male");
Map<String, Object> param = new TreeMap<String, Object>();
param.putAll(map);
TreeMap 类中不允许键对象为 null 或是 基本数据类型,这是因为 TreeMap 中的对象必须是可排序的(即对象需要实现 java.lang.Comparable 接口)
在创建 TreeMap 对象时,如果使用参数为空的构造方法,则根据 Map 对象的 key 进行排序;如果使用参数为 Comparator 的构造方法,则根据 Comparator 进行排序。
在添加、删除和定位映射关系上,TreeMap类要比HashMap类的性能差一些,但是其中的映射关系具有一定的顺序。
如果不需要一个有序的集合,则建议使用HashMap类;如果需要进行有序的遍历输出,则建议使用TreeMap类。
在这种情况下,可以先使用 HashMap。在需要排序时,利用现有的 HashMap,创建一个 TreeMap 类型的实例。
如一个服务器接受的参数:name, age, sex , token。token的值等于各个参数名的升序排序值的组合在加上客户密码的md5值,
在这里是 token=md5(age + name + sex + password)。这时 TreeMap 就可以用上场,参数排序可以用下面的代码获取(这里举的例子参数比较少,参数比较多时更能体现TreeMap的作用):
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "darcy");
map.put("age", 18);
map.put("sex", "male");
Map<String, Object> param = new TreeMap<String, Object>();
param.putAll(map);
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦