Java集合(TreeMap类)

作者:杨裙
本次任务完成时间:2019年4月16日
开发工具与关键技术:MyEclipse 10、Java

一、TreeMap类它也是以键-值一一映射。TreeMap<K,V>:’K’代表此映射维护的键的类型,V代表映射的值的类型。TreeMap是有序的,所以可以根据其索引用Comparable和Comparator两种排序方式。在声明的时候,如果是基本数据类型,声明map就要使用包装类。在添加数据的时候,它的键和值无论是哪个在前面,只要基本数据类型相互对应,那么它不会报错,系统还是会根据它的键的大小进行排序。如果添加数据的时候,当添加的键和值相等的时候,打印出来的数据也只会显示一个值,所以即使添加重复的数据,并没有意义。当键相等,值不相等的时候,打印出来的数据,其值会显示最大的,如图:

在这里插入图片描述
其次也可以对数据进行添加或修改已经存在的数据。当在添加数据的时候,无论添加数据的顺序或者添加的键值是什么,它都会根据它的键的大小进行排序,然后打印的时候是按照键的大小显示出来,当然,如果把数据的位置调乱,结果还是根据键的大小进行排序,所以跟元素的添加顺序和位置无关。

二、TreeMap的一些方法:
1、firstKey:返回映射中当前的第一(最低)键,也就是根据排序的键的大小,返回最小的那一个值,注意其返回的不是放在第一个的位置的键,而是根据系统排序其最小的那一个键,firstEntry:也是同理,只不过其返回的是键值对,如图:
在这里插入图片描述
2、lastKey、lastEntry 和(firstKey、firstEntry)也是同理,只不过lastKey是返回映射中当前的最后一个(最高)键;lastEntry:它是根据其排序为最后一个的键值,返回的是最后的键值对,并不是位置在最后的键值。
3、higherKey:严格大于给定的最小键,如果不存在这样的键就返回空;higherEntry:严格大于给定键的最小键关联, 如果不存在这样的键就返回空。
4、lowerKey: 与严格小于给定键的最大键关联, 如果不存在这样的键就返回空。lowerEntry:
严格小于给定键的最大键,其返回键值,如果不存在就返回null。
5、headMap:返回的是键值,其键值要小于给定的键。
6、subMap:返回的是键值,其是截取,如果给定从哪里到哪里,那么其返回的是左闭右开区间,索引从开始的值到结束的前一个都属于截取的范围。
7、tailMap:返回的是键值,其大于等于给定的值。
如下图展示:
在这里插入图片描述