快速业务通道

JAVA HASHMAP議圻尖蛍裂 - 園殻秘壇利

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

JAVA HASHMAP議圻尖蛍裂

扮寂:2011-04-19 鴬人坩 Christmas

珊頁栖屁悶心匯和HashMap議潤更杏. 泌和夕侭幣(夕短鮫挫),圭崇旗燕Hash涌,蓉夕旗燕 涌坪議圷殆,壓宸戦祥頁Key-value斤侭怏撹Map.Entry斤?.

泌惚嗤謹倖圷沫瓜Hash痕方協了欺揖匯倖涌坪,厘断各岻葎hash喝融,涌坪議圷殆怏撹汽? 全燕.斑厘断心匯和hashMap JDK坿鷹(咀鐙嫌購狼,評茅阻何蛍旗鷹嚥廣瞥,湖佶辛參臥心 JDK1.6坿鷹):

public class HashMap<K,V>      extends AbstractMap<K,V>      implements Map<K,V>, Cloneable, Serializable {      static final int DEFAULT_INITIAL_CAPACITY = 16;      static final int MAXIMUM_CAPACITY = 1 << 30;      static final float DEFAULT_LOAD_FACTOR = 0.75f;      transient Entry[] table;      transient int size;      int threshold;      final float loadFactor;      transient volatile int modCount;      public HashMap(int initialCapacity, float loadFactor) {          if (initialCapacity < 0)              throw new IllegalArgumentException("Illegal initial  capacity: " +                                                  initialCapacity);          if (initialCapacity > MAXIMUM_CAPACITY)              initialCapacity = MAXIMUM_CAPACITY;          if (loadFactor <= 0 || Float.isNaN(loadFactor))              throw new IllegalArgumentException("Illegal load  factor: " +                                                  loadFactor);          // Find a power of 2 >= initialCapacity          int capacity = 1;          while (capacity < initialCapacity)              capacity <<= 1;          this.loadFactor = loadFactor;          threshold = (int)(capacity * loadFactor);          table = new Entry[capacity];          init();      }      public V get(Object key) {          if (key == null)              return getForNullKey();          int hash = hash(key.hashCode());          for (Entry<K,V> e = table[indexFor(hash,  table.length)];               e != null;               e = e.next) {              Object k;              if (e.hash == hash && ((k = e.key) ==  key || key.equals(k)))                  return e.value;          }          return null;      }      private V getForNullKey() {          for (Entry<K,V> e = table[0]; e != null; e =  e.next) {              if (e.key == null)                  return e.value;          }          return null;      }      public V put(K key, V value) {          if (key == 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号