Java的HashMap和HashTable】的更多相关文章

Java的HashMap和HashTable 1. HashMap 1)  hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示: 当我们往hashmap中put元素的时候,先根据key的hash值得到这个元素在数组中的位置(即下标),然后就可以把这个元素放到对应的位置中了.如果这个元素所在的位子上已经存放有其他元素了,那么在同一个位子上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾. 2)使用 Map map = new Has…
Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合框架面试题中最常被考的问题,所以在参加任何Java面试之前,都不要忘了准备这一题. 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Cloneable, <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java…
一.Set和Map关系 Set代表集合元素无序,集合元素不可重复的集合,Map代表一种由多个key-value组成的集合,map集合是set集合的扩展只是名称不同,对应如下 二.HashMap的工作原理         HashMap基于hashing原理,通过put()和get()方法储存和获取对象.         put()方法: 它调用键对象的hashCode()方法来计算hashcode值,系统根据hashcode值决定该元素在bucket位置.如果两个对象key的hashcode返回…
0. 前言 HashMap和HashTable的区别一种比较简单的回答是: (1)HashMap是非线程安全的,HashTable是线程安全的. (2)HashMap的键和值都允许有null存在,而HashTable则都不行. (3)因为线程安全.哈希效率的问题,HashMap效率比HashTable的要高. 但是如果继续追问:Java中的另一个线程安全的与HashMap功能极其类似的类是什么? 同样是线程安全,它与HashTable在线程同步上有什么不同?带着这些问题,开始今天的文章. 本文为…
摘自: http://blog.chinaunix.net/uid-7374279-id-2057584.html HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.HashMap把Hashtable的contains方法去掉了,改成contains…
1.HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable. 2.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许. 3.HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解…
HashMap与Hashtable实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用 两者的主要区别如下 1.Hashtable是早期JDK提供的接口,HashMap是新版JDK提供的接口 2.Hashtable继承Dictionary类,HashMap实现Map接口 3.Hashtable线程安全,HashMap线程非安全 4.Hashtable不允许null值,HashMap允许null值 HashSet与HashMap的区别 1.HashSet底层是采用HashM…
  底层 有序否 键值对能否为Null 遍历 线程安全 哈希Code Hashmap 数组+链表 无序 都可null iterator 不安全 内部hash方法 Hashtable 数组+链表 无序 都不可null Enumeration(iterator) 安全 Key自己的 TreeMap 红黑树 有序 仅value能null iterator 不安全 / 关于hashtable一般是用Enumeration遍历的,不过也可以强行用iterator,代码如下: Hashtable<Strin…
hastTable和hashMap的区别:(1)Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现.(2)这个不同即是最重要的一点:Hashtable中的方法是同步的,而HashMap方法(在缺省情况下)是非同步的.即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了:而对于HashMap,则需要额外的同步机制.但HashMap的同步问题可通过Collections的一个静态方法得到解决: Map Coll…
1.hashmap是线程不安全的,能够有key,value能有null hashtable是线程安全的,key,value不能有null…