HashTable
特点
- jdk1.0,线程安全,运行效率慢,不允许null作为key或者value
子类properties
- HashTable的子类,要求key和value都是String类型,通常用于配置文件读取
![]()
TreeMap
特点
- 实现了SortedMap接口(Map的子接口),可以对key进行排序。
使用
/**
* TreeMap的使用
* 数据结构:红黑树(需要重写compareTo方法
*/
public class treeMap {
public static void main(String[] args) {
//1.创建TreeMap集合
TreeMap<Person,String> treeMap = new TreeMap<>();
Person p1 = new Person("cc",10);
Person p2 = new Person("bb",10);
Person p3 = new Person("aa",10);
Person p4 = new Person("cc",9);
//2.添加
treeMap.put(p1,"aaa");
treeMap.put(p2,"bbb");
treeMap.put(p3,"ccc");
treeMap.put(p4,"ddd");
System.out.println(treeMap);
//3.删除
treeMap.remove(p1);
System.out.println(treeMap);
//4.遍历
//4.1.ketSet方法
for (Person p:treeMap.keySet()
) {
System.out.println(p + "--------->" + treeMap.get(p));
}
//4.1.entrySet方法
for (Map.Entry<Person,String> entry : treeMap.entrySet()
) {
System.out.println(entry.getKey() + "-------->" + entry.getValue());
}
//5.判断
System.out.println(treeMap.containsKey(p2));
System.out.println(treeMap.isEmpty());
}
}
//输出结果
{Person{name='aa', age=10}=ccc, Person{name='bb', age=10}=bbb, Person{name='cc', age=9}=ddd, Person{name='cc', age=10}=aaa}
{Person{name='aa', age=10}=ccc, Person{name='bb', age=10}=bbb, Person{name='cc', age=9}=ddd}
Person{name='aa', age=10}--------->ccc
Person{name='bb', age=10}--------->bbb
Person{name='cc', age=9}--------->ddd
Person{name='aa', age=10}-------->ccc
Person{name='bb', age=10}-------->bbb
Person{name='cc', age=9}-------->ddd
true
false