HashMap,HashTable,HashSet

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)是无序的

时间: 2024-11-13 06:53:48

HashMap,HashTable,HashSet的相关文章

Java中Map与HashMap,Hashtable,HashSet的区别

HashMap和Hashtable两个类都实现了Map接口,二者保存K-V对(key-value对):HashSet则实现了Set接口,性质类似于集合. HashTable和HashMap区别 一.继承的父类不同 Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类.但二者都实现了Map接口. 二.线程安全性不同 Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的.在多线程并发的环境下

浅析Java中Map与HashMap,Hashtable,HashSet的区别(转载)

HashMap和Hashtable两个类都实现了Map接口,二者保存K-V对(key-value对):HashSet则实现了Set接口,性质类似于集合 HashTable和HashMap区别 第一,继承的父类不同.Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类.但二者都实现了Map接口. public class Hashtable<K,V>extends Dictionary<K,V>implements Map<K,V>

Set ,List,ArrayList,LinkedList,Vectory,HashMap,Hashtable,HashSet,TreeSet,TreeSet

Set与List区别: 两者都是接口,并继承Collection接口:List有序,允许重复:Set无序,不能重复: ArrayList与LinkList区别: ArrayList是动态数组,查询效率高:而LinkList是双向链表,插入删除效率高: HashMap与Hashtable区别: 实现Map接口:HashMap是线程异步(ArrayList也是),Hashtable是同步的(Vectory也是),可以使用Collections.synchronizedMap方法实现同步;.HashM

[转]HashMap与HashTable的区别、HashMap与HashSet的关系

转自: http://blog.csdn.net/wl_ldy/article/details/5941770 HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable.可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别. 一:HashMap与HashTable的区别 1.HashTable的方法是同步 的,在方法的前面都有synchronized来同步,HashMap未经同步,所以

基于散列的集合 HashSet\HashMap\HashTable

HashSet\HashMap\HashTable 1 基于散列的集合 2 元素会根据hashcode散列,因此,集合中元素的顺序不一定与插入的顺序一致. 3 根据equals方法与hashCode方法判断元素是否相等.这两个方法是从Object基类中继承的, 查看Object源码,若比较两个引用变量时,equals方法比较的是两个引用是否指向同一个内存地址.同样,hashCode的实现也与引用地址有关. 4 因此,自定义对象加入上述集合时,必须重写equals方法和hashCode方法. 5

java该HashTable,HashMap和HashSet

同一时候我们也对HashSet和HashMap的核心方法hashcode进行了具体解释,见<探索equals()和hashCode()方法>. 万事俱备,那么以下我们就对基于hash算法的三个集合HashTable,HashSet和HashMap具体解释. 本文文件夹: 1. HashTable和HashMap的差别 2. HashSet和HashMap的差别 3. HashMap,HashSet工作原理 4. HashSet工作原理 5. 常见问题 1. HashTable和HashMap的

java中的HashTable,HashMap和HashSet

目录(?)[+] 上篇博客中我们详细的分析了java集合<java中Map,List与Set的区别>. 同时我们也对HashSet和HashMap的核心方法hashcode进行了详解,见<探索equals()和hashCode()方法>. 万事俱备,那么下面我们就对基于hash算法的三个集合HashTable,HashSet和HashMap详解. 本文目录: 1. HashTable和HashMap的区别 2. HashSet和HashMap的区别 3. HashMap,HashS

HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别

Hash算法 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128

HashMap与HashTable的区别、HashMap与HashSet的关系

http://blog.csdn.net/wl_ldy/article/details/5941770 HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable.可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别. 一:HashMap与HashTable的区别 1.HashTable的方法是同步 的,在方法的前面都有synchronized来同步,HashMap未经同步,所以在多线程