HashMap,HashTable,HashSet介绍

dgy7 5年前

1,HashMap

    (1)public class HashMap extends AbstractMap implements Map{}

    (2)key允许且只有一个可以为null,value 可以有多个null

    (3)非线程安全,但是可以通过 Collection.synchronizedMap(Map p)返回线性安全的map

    (4)用的迭代器为iterator

    (5)执行效率比hashtable高一些

    (6)是无序的,LinkedHashMap是有序的,按照存储顺序

    (7)构造方法

            * HashMap():构建一个初始容量为 16,负载因子为 0.75 的 HashMap。
            * HashMap(int initialCapacity):构建一个初始容量为 initialCapacity,负载因子为 0.75 的 HashMap。
            * HashMap(int initialCapacity, float loadFactor):以指定初始容量、指定的负载因子创建一个 HashMap。

2,HashTable

    (1)public class HashTable extends Dictionary implements Map{}

    (2)key 与 value都不允许为null

    (3)是线性安全的

    (4)用的迭代器是enumerator

    (5)执行效率比hashMap低一些

    (6)是无序的

3,HashSet

    (1)public class HashSet extends AbstractSet implements Set{}

    (2)对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素

    (3)里面的值不允许重复

    (4)线性非安全,可以用Collection.synchronizedSet(new HashSet());

    (5)是无序的