workplace-blog

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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
posted on 2022-08-26 19:31  多巴胺LLL  阅读(30)  评论(0)    收藏  举报