1.1TreeMap的底层使用了红黑树来实现,向TreeMap中添加键值对时会生产一个Entry对象,这个对象就是红黑树的一个节点,只是这些节点存放的方式不同;存放的每一个Entry对象都会按照其key的哈希码值的大小按照红黑树取存放,所以TreeMap中的数据时按照key的哈希码值的大小进行排序;
1.2TreeMap的排序方式
根据其创建映射的构造方法不同,TreeMap的排序方式也不同,
TreeMap()构造方法创建的TreeMap会根据key的自然顺序进行排序,
TreeMap(Comparator<? super K> comparator)构造方法创建的TreeMap会根据所提供的比较器进行排序;
1.3entrySet()方法,
返回一个包含原TreeMap键值对对象的set集合;
EntrySet是一个集合,它继承与AbstractSet
1.4TreeMap的遍历
1.遍历键值对对象
class test01 {
public static void main(String[] args) {
Map<String,String> map = new TreeMap();//创建TreeMap
Set set = map.entrySet();//获取键值对对象的集合
Iterator it = set.iterator();//调用iterator方法获取迭代器
while (it.hasNext()){ //hasNext()方法,判断是否为空,为空则结束while循环
Map.Entry entry = (Map.Entry)it.next();
String key = (String) entry.getKey();//获取键
String value =(String) entry.getValue();//获取值
}
}
}
2.遍历key
class test02{
public static void main(String[] args) {
Map<String,String> map = new TreeMap();//创建TreeMap
Set set = map.keySet(); //获取键的集合
Iterator it = set.iterator(); //调用iterator方法获取迭代器
while (it.hasNext()){ //hasNext()方法,判断是否为空,为空则结束while循环
String key = it.next(); //获取key
String value = map.get(key);//获取值
}
}
}
3.遍历Treemap的值
class test03{
public static void main(String[] args) {
Map<String,String> map = new TreeMap();//创建TreeMap
Collection values = map.values();//获取值的集合
Iterator it = values.iterator();//调用iterator方法获取迭代器
while(it.hasNext()){//hasNext()方法,判断是否为空,为空则结束while循环
String value = it.next();//获取值
}
}
}