第一部分 TreeMap的介绍
TreeMap类使用树实现 Map接口。 TreeMap提供顺序存储关键字/值对的有效途径(注意:这里是按照关键字进行排序的),同时允许快速检索。(区别于HashMap是不排序的,使用的是散列表实现Map接口)
第二部分 为什么使用TreeMap编程
第一,TreeMap可以按key自动排序。(可以去看源码)
第二,TreeMap下有很多方法,可以进行动态的调用所需要的方法。
第三,使用TreeMap在这里也可以理解为一个缓存区,可以向其定义的对象里动态添加关键字/值对,这也是为什么不用String、StringBuffer的原因。
第三部分 TreeMap编程思想
①使用TreeMap创建一个对象
②调用put(Key,Value)往这个对象里面添加关键字/值对(此时可视为已经自动按升序排序了)
③利用Set接口定义一个常量(即定义时指定关键字列表为其初始值,这里定义为全局静态常量)
④创建一个迭代器以用于遍历输出TreeMap中的每个值
第三部分 结合代码理解
package model;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapDemo {
public static void main(String[] args) {
//创建一个TreeMap,使用了泛型,为什么使用泛型,因为TreeMap 源码使用了,这里也要使用以用来接收new出来的数据类型
TreeMap <String ,Integer> tm=new TreeMap<String ,Integer>();
//存放关键字/值对
for(int i=0;i<6;i++) {
tm. put(""+i,new Integer((int)Math.random()*10));
}
//创建Set 对象用以得到关键字列表,通过调用keySet()方法
Set <String> set=tm.keySet();
//创建迭代器,用以遍历tm对象中的每个元素
Iterator<String > i=set.iterator();
while(i.hasNext()) {
String key=i.next();
System.out.println(key+"="+tm.get(key).intValue());
}
System.out.println(tm);
}
}
程序输出如下:
0:5
1:84
2:63
3:74
4:59
5:19
{0=5, 1=84, 2=263, 3=74, 4=59, 5=19}哈喽
(以上为本人第一次学习TreeMap的心得,希望能对一些人有帮助,如有错误,请及时指出,谢谢)