博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SortedMap接口的实现类TreeMap介绍和实现Comparator自定义比较器(转)
阅读量:6426 次
发布时间:2019-06-23

本文共 1303 字,大约阅读时间需要 4 分钟。

与SortedSet接口类似,SortedMap也是一个结构,待排序的Map,其一个比较常用的实现类是TreeMap。

TreeMap的put(K key, V value)方法在每添加一个元素时,都会自动排序。

构造方法:
TreeMap()使用键的自然顺序构造一个新的、空的树映射。TreeMap(Comparator
comparator)构造一个新的、空的树映射,该映射根据给定比较器进行排序。TreeMap(Map
m)构造一个与给定映射具有相同映射关系的新的树映射,该映射根据其键的自然顺序 进行排序。

创建自定义的Comparator比较器:

//这里根据字符的ASCII码大小进行降序排序:class MyComparator2 implements Comparator
{ @Override public int compare(String o1, String o2) { return o2.compareTo(o1); }}

在SortedSet中,当保存对象时一定要自定义一个比较器Comparator,但是在SortedMap中,保存对象却不一定要,因为SortedMap是比较Key而不是Value,所以创建的自定义比较器也是针对Key的,比如上面创建的Comparator是针对Key类型为String的Map进行排序。

Map
map = new TreeMap
(new MyComparator2());

对于TreeMap的迭代和HashMap一样,同样有三种方法,以下是常用的其中一种:

Set
> set = map.entrySet();for(Iterator
> iter = set.iterator(); iter.hasNext();){ Map.Entry
entry = iter.next(); Integer key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + ":" + value);}

对于Map来说,不能使用Collections的静态方法,但是可以通过他的values方法获取到Collections进行调用:

Collection
cols = map.values();Integer max = Collections.max(cols);
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:
关键字:  ,  ,  , 
你可能感兴趣的文章
一句话下拖库
查看>>
Deploy Office Communications Server 2007R2 Group Chat Server(二)
查看>>
在Cacti上实现MSN报警机制
查看>>
如何对C++虚基类构造函数
查看>>
XFire WebService开发快速起步
查看>>
JavaScript 函数replace揭秘
查看>>
QTP解决内嵌IE窗体方法2
查看>>
“王子”的演讲:N828印象
查看>>
判断JS字符串中是否包含某些字符
查看>>
Phalanger---PHP的.NET编译器
查看>>
Scanner----java控制台和文件读取的利器(java 5新增)
查看>>
如何安全设定和检测你的密码安全性?
查看>>
一例HP ADG数据恢复成功(8×73GB SCSI)
查看>>
虚拟化系列-Citrix XenServer 6.1 XenMotion与HA
查看>>
TFS创建团队项目(三)
查看>>
对发展的一点小感想
查看>>
示例化讲解RIP路由更新机制
查看>>
eclipse不能自动编译工程的解决方法
查看>>
Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址
查看>>
Swt/Jface进度条
查看>>