HashTable HashMap HashSet区别(java)

Hashtable:

1. key和value都不许有null值

2. 使用enumeration遍历

3. 同步的,每次只有一个线程能够访问

4. 在java中Hashtable是H大写,t小写,而HashMap是H大写,M大写

HashMap:

1. key和value可以有null值

2. 使用iterator遍历

3. 未同步的,多线程场合要手动同步HashMap

HashSet

1. 底层调用HashMap

2. 不允许有重复值

常用Java操作:

1         Hashtable<Integer, Integer> ht=new Hashtable<Integer, Integer>();
 2         ht.put(key, value);
 3         ht.containsKey(key);
 4         ht.containsValue(value);
 5         ht.remove(key);
 6         ht.remove(key, value);

7         HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
 8         hm.put(key, value);
 9         hm.containsKey(key);
10         hm.containsValue(value);
11         hm.remove(key);
12         hm.remove(key, value);

13         HashSet<Integer> hs = new HashSet<Integer>();
14         hs.add(e);
15         hs.contains(o);
16         hs.remove(o);

Reference:

http://blog.sina.com.cn/s/blog_4586764e0100ivup.html

http://www.blogjava.net/fisher/archive/2006/12/13/87398.html

http://blog.csdn.net/wl_ldy/article/details/5941770

http://www.pakzilla.com/2009/08/24/hashmap-vs-hashtable-vs-hashset/

HashTable HashMap HashSet区别(java)

时间: 2024-08-13 22:49:44

HashTable HashMap HashSet区别(java)的相关文章

HashTable HashMap HashSet区别(java) [From 爱做饭的小莹子]

Hashtable: 1. key和value都不许有null值 2. 使用enumeration遍历 3. 同步的,每次只有一个线程能够访问 4. 在java中Hashtable是H大写,t小写,而HashMap是H大写,M大写 HashMap: 1. key和value可以有null值 2. 使用iterator遍历 3. 未同步的,多线程场合要手动同步HashMap HashSet 1. 底层调用HashMap 2. 不允许有重复值 常用Java操作: 1 Hashtable<Intege

HashSet HashTable HashMap的区别 及其Java集合介绍

(1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap以(key-value)的一组对象作为元素,且HashSet拒绝接受重复的对象.HashMap可以看作三个视图:key的Set,value的Collection,Entry的Set. 这里HashSet就是其实就是HashMap的一个视图. HashSet内部就是使用Hashmap实现的,和Hash

HashSet HashTable HashMap的区别

(1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap以(key-value)的一组对象作为元素,且HashSet拒绝接受重复的对象.HashMap可以看作三个视图:key的Set,value的Collection,Entry的Set. 这里HashSet就是其实就是HashMap的一个视图. HashSet内部就是使用Hashmap实现的,和Hash

java中hashmap和hashtable和hashset的区别

hastTable和hashMap的区别:(1)Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现.(2)这个不同即是最重要的一点:Hashtable中的方法是同步的,而HashMap方法(在缺省情况下)是非同步的.即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了:而对于HashMap,则需要额外的同步机制.但HashMap的同步问题可通过Collections的一个静态方法得到解决: Map Coll

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

Hashtable,hashset,hashmap的原理和区别

hashtable和hashset的区别: 这两个从不同的接口继承下来的,两者完全不一样,前者数据以<key,value>的形式储存,后者是存储单个对象的. hashtable和hashmap的区别: 1:hashtable是基于陈旧的类继承下来的(Dictionary),hashmap是java引进的map接口的一个实现: 2:hashtable是同步的,而hashmap不是同步的(异步就是一个对象可以同时给多个线程访问,同步就是一个对象只能给一个线程访问,其他线程都得排队等着),hashm

java集合HashMap、HashTable、HashSet详解

一.Set和Map关系 Set代表集合元素无序,集合元素不可重复的集合,Map代表一种由多个key-value组成的集合,map集合是set集合的扩展只是名称不同,对应如下 二.HashMap的工作原理 HashMap基于hashing原理,通过put()和get()方法储存和获取对象. put()方法: 它调用键对象的hashCode()方法来计算hashcode值,系统根据hashcode值决定该元素在bucket位置.如果两个对象key的hashcode返回值相同,那他们的存储位置相同,如

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

①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象.当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象.HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中. HashMap在每个链表节点中储存键值对对象. 当两个不同的键对象的hashc