锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产一二三精品无码,亚洲天堂在线视频,亚洲精品乱码久久久久久蜜桃 http://www.tkk7.com/himalayas/category/50230.htmlzh-cnThu, 12 Jun 2014 14:35:17 GMTThu, 12 Jun 2014 14:35:17 GMT60install jar to repositoryhttp://www.tkk7.com/himalayas/archive/2014/06/12/414667.htmlhimalayashimalayasThu, 12 Jun 2014 09:23:00 GMThttp://www.tkk7.com/himalayas/archive/2014/06/12/414667.htmlhttp://www.tkk7.com/himalayas/comments/414667.htmlhttp://www.tkk7.com/himalayas/archive/2014/06/12/414667.html#Feedback0http://www.tkk7.com/himalayas/comments/commentRss/414667.htmlhttp://www.tkk7.com/himalayas/services/trackbacks/414667.htmlmvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=6.0.0 -Dpackaging=jar -Dfile=C:\ojdbc6.jar

himalayas 2014-06-12 17:23 鍙戣〃璇勮
]]>
HashMap瑙f瀽http://www.tkk7.com/himalayas/archive/2011/01/10/342656.htmlhimalayashimalayasMon, 10 Jan 2011 01:39:00 GMThttp://www.tkk7.com/himalayas/archive/2011/01/10/342656.htmlhttp://www.tkk7.com/himalayas/comments/342656.htmlhttp://www.tkk7.com/himalayas/archive/2011/01/10/342656.html#Feedback0http://www.tkk7.com/himalayas/comments/commentRss/342656.htmlhttp://www.tkk7.com/himalayas/services/trackbacks/342656.htmlHashMap鏄熀浜庡搱甯岃〃鐨凪ap鎺ュ彛鐨勫疄鐜幫紝鍏佽null鍊煎拰null閿紙HashMap鍜孒ashtable澶ц嚧涓鏍鳳紝闄や簡涓嶅悓姝ュ拰鍏佽null澶栵級銆侶ashMap涓嶄繚瀛樻槧灝勭殑欏哄簭錛岀壒鍒槸涓嶄繚璇佽欏哄簭鎭掍箙涓嶅彉銆?/p>

       HashMap鐨勫疄鐜板亣瀹歨ash鍑芥暟灝嗗悇涓厓绱犳紜垎甯冨湪鍚勬《涔嬮棿錛屽彲涓哄熀鏈搷浣滐紙濡俫et()鍜宻et()錛夋彁渚涚ǔ瀹氱殑鎬ц兘錛岃凱浠i泦鍚堣鍥炬墍闇鐨勬椂闂翠笌HashMap 瀹炰緥鐨?#8220;瀹歸噺”錛堟《鐨勬暟閲忥級鍙婂叾澶у皬錛堥敭-鍊兼槧灝勫叧緋繪暟錛夌殑鍜屾垚姣斾緥銆傛墍浠ワ紝濡傛灉榪唬鎬ц兘寰堥噸瑕侊紝鍒欎笉瑕佸皢鍒濆瀹歸噺璁劇疆寰楀お楂橈紙鎴栧皢鍔犺澆鍥犲瓙璁劇疆寰楀お浣庯級銆?錛堟敞錛氳繖孌靛悓HashSet寰堢浉浼鹼紝鍏跺疄HashSet鏄熀鏈琀ashMap瀹炵幇鐨勶紝鎵浠ュ湪鎬ц兘鐨勬帶鍒朵笂涔熶竴鏍鳳級

       HashMap 鐨勫疄渚嬫湁涓や釜鍙傛暟褰卞搷鍏舵ц兘錛氬垵濮嬪閲忓拰鍔犺澆鍥犲瓙銆傚閲忔槸鍝堝笇琛ㄤ腑妗剁殑鏁伴噺錛屽垵濮嬪閲忓彧鏄搱甯岃〃鍦ㄥ垱寤烘椂鐨勫閲忋傚姞杞藉洜瀛愭槸鍝堝笇琛ㄥ湪鍏跺閲忚嚜鍔ㄥ鍔犱箣鍓嶅彲浠ヨ揪鍒板婊$殑涓縐嶅昂搴︺傚綋鍝堝笇琛ㄤ腑鐨勬潯鐩暟瓚呭嚭浜嗗姞杞藉洜瀛愪笌褰撳墠瀹歸噺鐨勪箻縐椂錛岄氳繃璋冪敤 rehash 鏂規硶灝嗗閲忕炕鍊嶃侶ashMap鐨勯粯璁ゅ垵濮嬪閲忔槸16錛岄粯璁ゅ姞杞藉洜瀛愭槸0.75錛岃繖鏍鳳紝褰揌ashMap閲岀殑鍏冪礌瓚呰繃16*0.75鍗?2鏃訛紝璋冪敤rehash鏂規硶錛屼嬌瀹歸噺澧為暱涓鍊嶃?/p>

       閫氬父錛岄粯璁ゅ姞杞藉洜瀛?(.75) 鍦ㄦ椂闂村拰絀洪棿鎴愭湰涓婂姹備竴縐嶆姌琛楓傚姞杞藉洜瀛愯繃楂樿櫧鐒跺噺灝戜簡絀洪棿寮閿錛屼絾鍚屾椂涔熷鍔犱簡鏌ヨ鎴愭湰錛堝湪澶у鏁?nbsp;HashMap綾葷殑鎿嶄綔涓紝鍖呮嫭 get 鍜?nbsp;put 鎿嶄綔錛岄兘鍙嶆槧浜嗚繖涓鐐癸級銆傚湪璁劇疆鍒濆瀹歸噺鏃跺簲璇ヨ冭檻鍒版槧灝勪腑鎵闇鐨勬潯鐩暟鍙婂叾鍔犺澆鍥犲瓙錛屼互渚挎渶澶ч檺搴﹀湴闄嶄綆 rehash 鎿嶄綔嬈℃暟銆傚鏋滃垵濮嬪閲忓ぇ浜庢渶澶ф潯鐩暟闄や互鍔犺澆鍥犲瓙錛屽垯涓嶄細鍙戠敓 rehash 鎿嶄綔銆?/p>

       濡傛灉寰堝鏄犲皠鍏崇郴瑕佸瓨鍌ㄥ湪 HashMap 瀹炰緥涓紝鍒欑浉瀵逛簬鎸夐渶鎵ц鑷姩鐨?rehash 鎿嶄綔浠ュ澶ц〃鐨勫閲忔潵璇達紝浣跨敤瓚沖澶х殑鍒濆瀹歸噺鍒涘緩瀹冨皢浣垮緱鏄犲皠鍏崇郴鑳芥洿鏈夋晥鍦板瓨鍌ㄣ?nbsp;       

       娉ㄦ剰錛屾瀹炵幇涓嶆槸鍚屾鐨勩?/strong> 濡傛灉澶氫釜綰跨▼鍚屾椂璁塊棶姝ゆ槧灝勶紝鑰屽叾涓嚦灝戜竴涓嚎紼嬩粠緇撴瀯涓婁慨鏀逛簡璇ユ槧灝勶紝鍒欏畠蹇呴』 淇濇寔澶栭儴鍚屾銆傦紙緇撴瀯涓婄殑淇敼鏄寚娣誨姞鎴栧垹闄や竴涓垨澶氫釜鏄犲皠鍏崇郴鐨勬搷浣滐紱浠呮敼鍙樹笌瀹炰緥宸茬粡鍖呭惈鐨勯敭鍏寵仈鐨勫間笉鏄粨鏋勪笂鐨勪慨鏀廣傦級榪欎竴鑸氳繃瀵硅嚜鐒跺皝瑁呰鏄犲皠鐨勫璞¤繘琛屽悓姝ユ搷浣滄潵瀹屾垚銆傚鏋滀笉瀛樺湪榪欐牱鐨勫璞★紝鍒欏簲璇ヤ嬌鐢?nbsp;Collections.synchronizedMap 鏂規硶鏉?#8220;鍖呰”璇ユ槧灝勩傛渶濂藉湪鍒涘緩鏃跺畬鎴愯繖涓鎿嶄綔錛屼互闃叉瀵規槧灝勮繘琛屾剰澶栫殑涓嶅悓姝ヨ闂紝濡備笅鎵紺猴細

     Map m = Collections.synchronizedMap(new HashMap(...));      

鐢辨墍鏈夋綾葷殑“闆嗗悎瑙嗗浘鏂規硶”鎵榪斿洖鐨勮凱浠e櫒閮芥槸蹇熷け璐ョ殑錛氬湪榪唬鍣ㄥ垱寤轟箣鍚庯紝濡傛灉浠庣粨鏋勪笂瀵規槧灝勮繘琛屼慨鏀癸紝闄ら潪閫氳繃榪唬鍣?/p>

鑷韓鐨?remove 鎴?add 鏂規硶錛屽叾浠栦換浣曟椂闂翠換浣曟柟寮忕殑淇敼錛岃凱浠e櫒閮藉皢鎶涘嚭 ConcurrentModificationException 銆傚洜姝わ紝闈㈠騫跺彂

鐨勪慨鏀癸紝榪唬鍣ㄥ緢蹇氨浼氬畬鍏ㄥけ璐ワ紝鑰屼笉鍐掑湪灝嗘潵涓嶇‘瀹氱殑鏃墮棿浠繪剰鍙戠敓涓嶇‘瀹氳涓虹殑椋庨櫓銆?

娉ㄦ剰錛岃凱浠e櫒鐨勫揩閫熷け璐ヨ涓轟笉鑳藉緱鍒頒繚璇侊紝涓鑸潵璇達紝瀛樺湪涓嶅悓姝ョ殑騫跺彂淇敼鏃訛紝涓嶅彲鑳戒綔鍑轟換浣曞潥鍐崇殑淇濊瘉銆傚揩閫熷け璐ヨ凱浠e櫒灝芥渶澶?/p>

鍔姏鎶涘嚭 ConcurrentModificationException 銆傚洜姝わ紝緙栧啓渚濊禆浜庢寮傚父紼嬪簭鐨勬柟寮忔槸閿欒鐨勶紝姝g‘鍋氭硶鏄細榪唬鍣ㄧ殑蹇熷け璐ヨ涓哄簲

璇ヤ粎鐢ㄤ簬媯嫻嬬▼搴忛敊璇?em style="font-style: italic; ">銆?/em> HashMap鐨勬瀯閫犲嚱鏁幫細

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();
    }

鍙互鐪嬪嚭錛屽綋鐢熸垚HashMap瀵硅薄鏃訛紝濡傛灉initialCapacity鐨勬暟鍊兼瘮杈冨ぇ鏃訛紝capacity 浼氳璧嬩簬絳変簬鎴栧ぇ浜巌nitialCapacity 鐨勫鹼紝鐒跺悗

鍒涘緩涓涓湁capacity 涓狤ntry瀵硅薄鐨則able鏁扮粍錛屾墍浠nitialCapacity鐨勬暟鍊間笉鑳藉お澶э紝鍚﹀垯浼氱敓鎴愭瘮杈冨ぇ鐨勬暟緇則able錛屽崰鐢ㄦ瘮杈冨ぇ鐨勫簲鐢ㄥ唴

瀛橈紝閫犳垚鍐呭瓨嫻垂銆?/p>

HashMap鐨勯粯璁ゆ瀯閫犲嚱鏁幫細

public HashMap() {
        this.loadFactor = DEFAULT_LOAD_FACTOR;
        threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);
        table = new Entry[DEFAULT_INITIAL_CAPACITY];
        init();
    }

榛樿鏋勯犲嚱鏁伴噷鐨勫垵濮嬪閲忎負16錛屽姞杞藉洜瀛愪負0.75錛岃繖鏍蜂細鐢熸垚鍚湁16*0.75=12涓狤ntry瀵硅薄鐨勬暟緇則able錛屽綋HashMap閲岀殑鍏冪礌鏁?/p>

閲忚秴榪?2涓椂錛屼細灝咹ashMap鐨勫閲忕炕1鍊嶏紝鐢熸垚鍖呭惈32涓狤ntry瀵硅薄鐨勬暟緇勩?/p>

put鏂規硶錛?/span>

            public V put(K key, V value) {
        K k = maskNull(key);
        int hash = hash(k);
        int i = indexFor(hash, table.length);

        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
            if (e.hash == hash && eq(k, e.key)) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }

        modCount++;
        addEntry(hash, k, value, i);
        return null;
    }

        K k = maskNull(key);榪欒鏄垽鏂璳ey鏄惁涓簄ull錛屽鏋滀負null錛屽垯榪斿洖涓涓潤鎬佺殑K錛圤bject錛夊璞″仛涓洪敭鍊鹼紝榪欏氨鏄疕ashMap涓轟粈涔堝厑璁竛ull閿瓨鍦ㄧ殑鍘熷洜銆?/span>

        int hash = hash(k);
        int i = indexFor(hash, table.length);

        榪欒繛緇殑涓ゆ灝辨槸 HashMap 鏈鐗涚殑鍦版柟錛佺爺絀跺畬鎴戦兘姹楅浜嗭紝鍏朵腑 hash 灝辨槸閫氳繃 key 榪欎釜Object鐨?hashcode 榪涜 hash錛岀劧鍚庨氳繃 indexFor 鑾峰緱鍦∣bject table鐨勭儲寮曞箋?/span>

             table錛燂紵錛熶笉瑕佹儕璁訛紝鍏跺疄HashMap涔熺涓嶅埌鍝噷鍘伙紝瀹冨氨鏄敤 table 鏉ユ斁鐨勩傛渶鐗涚殑灝辨槸鐢?hash 鑳芥紜殑榪斿洖绱㈠紩銆傚叾涓殑hash綆楁硶錛屾垜璺烰DK鐨勪綔鑰?Doug 鑱旂郴榪囷紝浠栧緩璁垜鐪嬬湅銆奣he art of programing vol3銆嬪彲鎭ㄧ殑鏄紝鎴戜箣鍓嶅氨涓鐩村湪鎵撅紝鎴戦兘鎵句笉鍒幫紝浠栬繖鏍蜂竴鎻愶紝鎴戝氨鏇村姞鎬ヤ簡錛屽彲鎯滃彛琚嬬┖絀哄晩錛侊紒錛?br /> 涓嶇煡閬撳ぇ瀹舵湁娌℃湁鐣欐剰 put 鍏跺疄鏄竴涓湁榪斿洖鐨勬柟娉曪紝瀹冧細鎶婄浉鍚岄敭鍊肩殑 put 瑕嗙洊鎺夊茍榪斿洖鏃х殑鍊鹼紒濡備笅鏂規硶褰誨簳璇存槑浜?HashMap 鐨勭粨鏋勶紝鍏跺疄灝辨槸涓涓〃鍔犱笂鍦ㄧ浉搴斾綅緗殑Entry鐨勯摼琛細
for (Entry e = table; e != null; e = e.next) {
if (e.hash == hash && eq(k, e.key)) {
Object oldvalue = e.value;
e.value = value; //鎶婃柊鐨勫艱祴浜堢粰瀵瑰簲閿箋?br /> e.recordAccess(this); //絀烘柟娉曪紝鐣欏緟瀹炵幇
return oldvalue; //榪斿洖鐩稿悓閿肩殑瀵瑰簲鐨勬棫鐨勫箋?br /> }
}
modCount++; //緇撴瀯鎬ф洿鏀圭殑嬈℃暟
addEntry(hash, k, value, i); //娣誨姞鏂板厓绱狅紝鍏抽敭鎵鍦紒
return null; //娌℃湁鐩稿悓鐨勯敭鍊艱繑鍥?br /> } 
鎴戜滑鎶婂叧閿殑鏂規硶鎷垮嚭鏉ュ垎鏋愶細
void addEntry(int hash, Object key, Object value, int bucketIndex) {
table[bucketIndex] = new Entry(hash, key, value, table[bucketIndex]); 
鍥犱負 hash 鐨勭畻娉曟湁鍙兘浠や笉鍚岀殑閿兼湁鐩稿悓鐨刪ash鐮佸茍鏈夌浉鍚岀殑table绱㈠紩錛屽錛歬ey錛?#8220;33”鍜宬ey錛漁bject g鐨刪ash閮芥槸錛?901334錛岄偅瀹冪粡榪噄ndexfor涔嬪悗鐨勭儲寮曚竴瀹氶兘涓篿錛岃繖鏍峰湪new鐨勬椂鍊欒繖涓狤ntry鐨刵ext灝變細鎸囧悜榪欎釜鍘熸湰鐨?table錛屽啀鏈変笅涓涓篃濡傛錛屽艦鎴愪竴涓摼琛紝鍜宲ut鐨勫驚鐜瀹歟.next鑾峰緱鏃х殑鍊箋傚埌榪欓噷錛孒ashMap鐨勭粨鏋勶紝澶у涔熷崄鍒嗘槑鐧戒簡鍚э紵
if (size++ >= threshold) //榪欎釜threshold灝辨槸鑳藉疄闄呭綰崇殑閲?br /> resize(2 * table.length); //瓚呭嚭榪欎釜瀹歸噺灝變細灝哋bject table閲嶆瀯 
鎵璋撶殑閲嶆瀯涔熶笉紲烇紝灝辨槸寤轟竴涓袱鍊嶅ぇ鐨則able錛堟垜鍦ㄥ埆鐨勮鍧涗笂鐪嬪埌鏈変漢璇存槸涓ゅ嶅姞1錛屾妸鎴戦獥浜嗭級錛岀劧鍚庡啀涓涓釜indexfor榪涘幓錛佹敞鎰忥紒錛佽繖灝辨槸鏁堢巼錛侊紒濡傛灉浣犺兘璁╀綘鐨凥ashMap涓嶉渶瑕侀噸鏋勯偅涔堝嬈★紝鏁堢巼浼氬ぇ澶ф彁楂橈紒
璇村埌榪欓噷涔熷樊涓嶅浜嗭紝get姣攑ut綆鍗曞緱澶氾紝澶у錛屼簡瑙ut錛実et涔熷樊涓嶄簡澶氬皯浜嗐傚浜巆ollections鎴戞槸璁や負錛屽畠鏄傚悎騫挎硾鐨勶紝褰撲笉瀹?鍏ㄩ傚悎鐗規湁鐨勶紝濡傛灉澶у鐨勭▼搴忛渶瑕佺壒孌婄殑鐢ㄩ旓紝鑷繁鍐欏惂錛屽叾瀹炲緢綆鍗曘傦紙浣滆呮槸榪欐牱璺熸垜璇寸殑錛屼粬榪樺緩璁垜鐢↙inkedHashMap,鎴戠湅浜嗘簮鐮佷互鍚庡彂 鐜幫紝LinkHashMap鍏跺疄灝辨槸緇ф壙HashMap鐨勶紝鐒跺悗override鐩稿簲鐨勬柟娉曪紝鏈夊叴瓚g殑鍚屼漢錛岃嚜宸眑ooklook錛夊緩涓?Object table錛屽啓鐩稿簲鐨勭畻娉曪紝灝眔k鍟︺?br /> 涓句釜渚嬪瓙鍚э紝鍍?Vector錛宭ist 鍟婁粈涔堢殑鍏跺疄閮藉緢綆鍗曪紝鏈澶氬氨澶氫簡鐨勫悓姝ョ殑澹版槑錛屽叾瀹炲鏋滆瀹炵幇鍍廣ector閭g錛屾彃鍏ワ紝鍒犻櫎涓嶅鐨勶紝鍙互鐢ㄤ竴涓狾bject table鏉ュ疄鐜幫紝鎸夌儲寮曞瓨鍙栵紝娣誨姞絳夈?br /> 濡傛灉鎻掑叆錛屽垹闄ゆ瘮杈冨鐨勶紝鍙互寤轟袱涓狾bject table錛岀劧鍚庢瘡涓厓绱犵敤鍚湁next緇撴瀯鐨勪竴涓猼able瀛橈紝濡傛灉瑕佹彃鍏ュ埌i錛屼絾鏄痠宸茬粡鏈夊厓绱狅紝鐢╪ext榪炶搗鏉ワ紝鐒跺悗size錛嬶紜錛屽茍鍦ㄥ彟涓涓猼able璁板綍鍏朵綅緗?/span>



himalayas 2011-01-10 09:39 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 桃子视频在线观看高清免费完整| 免费无码一区二区| 暖暖免费在线中文日本| 亚洲精品V欧洲精品V日韩精品 | 最近中文字幕2019高清免费| 久久精品国产亚洲香蕉| 在线涩涩免费观看国产精品| 亚洲动漫精品无码av天堂| 日本视频在线观看永久免费| 亚洲国产高清人在线| 在线看无码的免费网站| 亚洲高清视频在线播放| 女人18毛片特级一级免费视频| 亚洲一本到无码av中文字幕| 日本成人免费在线| 一级毛片视频免费| 国产亚洲人成无码网在线观看| 久久精品视频免费| 亚洲一级毛片在线播放| 国产成人无码免费视频97| 九九久久国产精品免费热6| 亚洲精品无码不卡在线播HE | jizz中国免费| 亚洲邪恶天堂影院在线观看| 免费av欧美国产在钱| 日日狠狠久久偷偷色综合免费| 亚洲日韩精品一区二区三区| 91短视频免费在线观看| 亚洲国产精品ⅴa在线观看| 久久亚洲国产成人影院网站| 1000部夫妻午夜免费| 成人精品国产亚洲欧洲| 亚洲AV无一区二区三区久久| 成人性生交大片免费看无遮挡 | 91亚洲国产在人线播放午夜 | 亚洲精品乱码久久久久久久久久久久| 一区二区三区观看免费中文视频在线播放 | 久久99精品国产免费观看| 亚洲一卡2卡3卡4卡乱码 在线| 无码欧精品亚洲日韩一区夜夜嗨| 先锋影音资源片午夜在线观看视频免费播放 |