HashMap 、LinkedHashMap、HashTable、TreeMap 和 Properties 的区别

时间:2021-12-31 19:12:42
HashMap

1、线程不安全

2、允许null value 和 null key;

3、访问效率比较

4、Java1.2引进的Map接口的一个实现

5、轻量级;

6、根据键的HashCode()值存储数据的位置;

7、遍历时,取得的数据的顺序是完全随机的;

8、最多允许一条记录的键为空

9、允许多条记录的值为空

10、在Map中插入、删除和定位元素,HashMap是较好的选择;

LinkedHashMap

1、保存了记录的插入顺序

2、可以按照插入顺序应用次数排序;

3、如果需要按照输入和输出的顺序相同,用LinkedHashMap;

HashTable

1、支持线程的同步,线程安全的一个Collection;

2、不允许有null value 和 null key;

3、效率下;

4、继承于Dictionnary类;

5、比Hashmap

TreeMap

1、实现SortedMap接口;

2、能将保存的记录根据键排序,默认升序排序;

3、如果要按自然顺序方式或自定义顺序遍历键,用TreeMap;

Properties

1、用于配置文件定义和操作,使用频率比较

2、键和值都是字符串;