1、有序性
HashMap 无序
LinkedHashMap 有序(存值的顺序)
TreeMap 有序(键值的顺序)
2、实现及效率
HashMap 是基于散列表,基于哈希表实现,时间复杂度平均能达到O(1)。
LinkedHashMap HashMap和双向链表合二为一即是LinkedHashMap时间复杂度O(1)。
TreeMap 基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。
HashMap与TreeMap 比较,HashMap查询效率高但是无序,TreeMap有序但是查询效率低。LinkedHashMap保证有序和查询效率。
3、线程安全
HashMap 非线程安全
LinkedHashMap 非线程安全
TreeMap 线程安全
4、key是否可以为null
HashMap 可以
LinkedHashMap 可以
TreeMap 不可以(会报错java.lang.NullPointerException)
代码如下:
package com.soecode.lyf.web.test;
import