2.集合(Map)

发布时间 2023-12-08 11:27:46作者: 求知律己

  在我们的代码开发中,Map键值对集合是我们经常使用的数据存储结构,他用着O(1)的查询时间复杂度,为我们的查询操作提供了优质的效率。

1.Map

1.1 HashMap与HashTable的区别

  1. 线程是否安全HashMap 是非线程安全的,Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。(如果要保证线程安全最好使用 ConcurrentHashMap )
  2. 效率:因为线程安全的问题,HashMap 要比 Hashtable 效率高一点。另外,Hashtable 基本被淘汰,不要在代码中使用它
  3. 对NULL key和NULLvalue的支持HashMap 可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个;Hashtable 不允许有 null 键和 null 值,否则会抛出 NullPointerException
  4. 初始容量大小和每次扩容大小的不同
  5. 底层数据结构