数据结构

Posted on 2018-03-11 18:32  小小蜗牛灬  阅读(87)  评论(0编辑  收藏  举报

1.哈希表:若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表,也叫哈希表;

           HashMap:底层是哈希表是一个数组 ,每个数组的位置上对应一个链表,是数组和链表的结合;http://www.importnew.com/16301.html;

    1):HashMap实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。线程不安全的;

    2):String 作为key 会导致  hash值重复概率增加。

 

2.hashtable:Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。

      1)集成Dictionary字典类;

3.Hashtable和HashMap到底有哪些不同呢

 

(1)基类不同:HashTable基于Dictionary类,而HashMap是基于AbstractMap。Dictionary是什么?它是任何可将键映射到相应值的类的抽象父类,而AbstractMap是基于Map接口的骨干实现,它以最大限度地减少实现此接口所需的工作。

(2)null不同:HashMap可以允许存在一个为null的key和任意个为null的value,但是HashTable中的key和value都不允许为null。

(3)线程安全:HashMap时单线程安全的,Hashtable是多线程安全的。

(4)遍历不同:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种遍历方式。

    

Copyright © 2024 小小蜗牛灬
Powered by .NET 8.0 on Kubernetes