DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          好友之家

          最新評(píng)論

          java中的容器-hashMap

          java的大部分容器都有一個(gè)須要了解的問(wèn)題,就是什么時(shí)候須要擴(kuò)張
          看看hashMap的實(shí)現(xiàn) ,兩個(gè)關(guān)鍵的值
          1,hashMap的默認(rèn)容量
          static final int DEFAULT_INITIAL_CAPACITY = 16;
          默認(rèn)的load factor
          static final float DEFAULT_LOAD_FACTOR = 0.75f;
          擴(kuò)張相關(guān)的函數(shù)
          ? void addEntry(int hash, K key, V value, int bucketIndex) {
          ?Entry<K,V> e = table[bucketIndex];
          ??????? table[bucketIndex] = new Entry<K,V>(hash, key, value, e);
          ??????? if (size++ >= threshold)
          ??????????? resize(2 * table.length);
          ?? }
          ???
          ?void resize(int newCapacity) {
          ??? Entry[] oldTable = table;
          ??? int oldCapacity = oldTable.length;
          ??? if (oldCapacity == MAXIMUM_CAPACITY) {
          ??????? threshold = Integer.MAX_VALUE;
          ??????? return;
          ??? }

          ??? Entry[] newTable = new Entry[newCapacity];
          ??? transfer(newTable);
          ??? table = newTable;
          ??? threshold = (int)(newCapacity * loadFactor);
          ?}
          ?結(jié)論,在建立HashMap的時(shí)候可以考慮一下是否傳入Load Factor和capacity的值來(lái)優(yōu)化性能,
          ?漸少擴(kuò)張次數(shù)(load factor和initial capacity), 或者漸少空間浪費(fèi)(loadFacotr)

          posted on 2006-11-03 17:42 dreamstone 閱讀(456) 評(píng)論(0)  編輯  收藏 所屬分類: jdk相關(guān)

          主站蜘蛛池模板: 大连市| 青阳县| 宜州市| 原阳县| 万荣县| 武鸣县| 白银市| 常山县| 九江市| 临猗县| 金山区| 东宁县| 汾阳市| 玛沁县| 茶陵县| 肇东市| 柞水县| 远安县| 青龙| 乾安县| 高雄市| 衡东县| 长白| 闽清县| 广安市| 城市| 蒙城县| 福贡县| 隆德县| 宁城县| 济宁市| 水富县| 昭觉县| 绥阳县| 南投县| 吴旗县| 新兴县| 克山县| 东乌珠穆沁旗| 连州市| 松阳县|