澶у濂斤紝鎴戞槸鍚戝銆傜鎷涘湪鍗筹紙宸茬粡寮€濮嬫彁鍓嶅鎵癸級锛屾垜瀵笿avaGuide鐨勫唴瀹硅繘琛屼簡閲嶆瀯鍜屽畬鍠勶紝鍏紬鍙峰悓姝ユ渶鏂版洿鏂帮紝甯屾湜瀵逛綘鏈夋墍甯姪銆傛偍涔熷彲浠ュ湪缃戠珯锛坖avaguide.cn锛変笂鍦ㄧ嚎闃呰锛岄槄璇讳綋楠屼細鏇村ソ锛佸墠3绡囷細Java鍩虹甯歌瘑鐐?闈㈣瘯棰樻€荤粨锛堜笂锛夛紝2022鏈€鏂扮増锛丣ava鍩虹甯歌瘑鐐?闈㈣瘯棰樻眹鎬伙紙涓級2022鏈€鏂扮増Java鍩虹甯歌瘑鐐?闈㈣瘯棰樻眹鎬伙紙涓嬶級2022鏈€鏂扮増锛丆ollection姒傝堪JavaCollection姒傝堪Java闆嗗悎鍙堢О涓哄鍣紝涓昏娲剧敓浜庝袱涓帴鍙o細涓€涓槸Collection鎺ュ彛锛屼富瑕佺敤浜庡瓨鍌ㄥ崟涓厓绱狅紱鍙︿竴涓槸Map鎺ュ彛锛屼富瑕佺敤鏉ュ瓨鍌ㄩ敭鍊煎銆傚浜嶤ollection鎺ュ彛锛屼富瑕佹湁涓嬮潰涓変釜瀛愭帴鍙o細List銆丼et銆丵ueue銆侸ava闆嗗悎妗嗘灦濡備笅鍥炬墍绀猴細娉細鍥句腑鍙垪鍑轰簡涓昏鐨勭户鎵挎淳鐢熷叧绯伙紝骞舵湭鍒楀嚭鎵€鏈夊叧绯汇€備緥濡傜渷鐣ヤ簡AbstractList銆丯avigableSet绛夋娊璞$被绛夎緟鍔╃被銆傚鏋滄兂娣卞叆浜嗚В锛屽彲浠ヨ嚜宸辨煡鐪嬫簮鐮併€傝鍛婅瘔鎴慙ist銆丼et銆丵ueue鍜孧ap涔嬮棿鐨勫尯鍒紵List锛堝鐞嗛『搴忕殑濂藉府鎵嬶級锛氬瓨鍌ㄧ殑鍏冪礌鏄湁搴忕殑锛屽彲閲嶅鐨勩€係et锛堝叧娉ㄥ敮涓€灞炴€э級锛氬瓨鍌ㄧ殑鍏冪礌鏄棤搴忕殑锛屼笉鍙噸澶嶇殑銆俀ueue锛堝疄鐜版帓闃熷姛鑳界殑鍙彿鏈猴級锛氭寜鐓х壒瀹氱殑鎺掗槦瑙勫垯纭畾椤哄簭锛屽瓨鍌ㄧ殑鍏冪礌鏄湁搴忕殑锛屽彲閲嶅鐨勩€侻ap锛堜娇鐢╧ey鏉ユ悳绱㈢殑楂樻墜锛夛細浣跨敤閿€煎锛坘ey-value锛夊瓨鍌紝绫讳技浜庢暟瀛﹀嚱鏁皔=f(x)锛屸€渪鈥濅唬琛╧ey锛屸€測鈥濅唬琛╲alue锛宬ey鏃犲簭锛屼笉鍙噸澶嶏紝鍊兼棤搴忥紝鍙噸澶嶏紝姣忎釜閿渶澶氭槧灏勫埌涓€涓€笺€傞泦鍚堟鏋跺簳灞傛暟鎹粨鏋勬€荤粨棣栧厛鎴戜滑鏉ョ湅涓€涓婥ollection鎺ュ彛涓嬬殑闆嗗悎銆侺istArraylist:Object[]arrayVector:Object[]arrayLinkedList:鍙屽悜閾捐〃(JDK1.6涔嬪墠鏄惊鐜摼琛紝JDK1.7鍙栨秷浜嗗惊鐜?SetHashSet(unordered,unique):鍩轰簬HashMap瀹炵幇锛屽簳灞備娇鐢℉ashMap淇濆瓨ElementLinkedHashSet锛歀inkedHashSet鏄疕ashSet鐨勫瓙绫伙紝鍏跺唴閮ㄧ敱LinkedHashMap瀹炵幇銆傛湁鐐圭被浼间簬鎴戜滑涔嬪墠璇寸殑LinkedHashMap銆傚畠鐨勫唴閮ㄥ疄鐜版槸鍩轰簬HashMap鐨勶紝浣嗘槸杩樻槸鏈変竴鐐瑰尯鍒殑銆俆reeSet(ordered,unique):绾㈤粦鏍?鑷钩琛℃帓搴忎簩鍙夋爲)QueuePriorityQueue:Object[]鏁扮粍瀹炵幇涓や釜Fork鍫咥rrayQueue:Object[]鏁扮粍+鍙屾寚閽堟垜浠湅涓€涓婱ap鎺ュ彛涓嬬殑闆嗗悎.MapHashMap锛氬湪JDK1.8涔嬪墠锛孒ashMap鏄敱鏁扮粍+閾捐〃缁勬垚鐨勩€傛暟缁勬槸HashMap鐨勪富浣擄紝閾捐〃鐨勫瓨鍦ㄤ富瑕佹槸涓轰簡瑙e喅鍝堝笇鍐茬獊锛堚€滄媺閾炬硶鈥濊В鍐冲啿绐侊級銆侸DK1.8涔嬪悗锛屽湪瑙e喅hash鍐茬獊鏂归潰鏈変簡杈冨ぇ鐨勫彉鍖栥€傚綋閾捐〃闀垮害澶т簬闃堝€硷紙榛樿涓?锛夛紙閾捐〃杞孩榛戞爲鍓嶄細杩涜鍒ゆ柇锛屽鏋滃綋鍓嶆暟缁勯暱搴﹀皬浜?4锛屽垯涓簊electedExpandthearrayfirst,insteadofconvertingtoared-blacktree),convertthelinkedlistintoared-blacktreetoreducethesearchtime閾捐〃鎴栫孩榛戞爲銆傚彟澶栵紝LinkedHashMap鍦ㄤ笂杩扮粨鏋勭殑鍩虹涓婂鍔犱簡涓€涓弻鍚戦摼琛紝浣垮緱涓婅堪缁撴瀯鍙互缁存姢閿€煎鐨勬彃鍏ラ『搴忋€傚悓鏃讹紝閫氳繃瀵归摼琛ㄨ繘琛岀浉搴旂殑鎿嶄綔锛屽疄鐜拌闂『搴忕浉鍏崇殑閫昏緫銆傝瑙侊細銆奓inkedHashMap 婧愮爜璇︾粏鍒嗘瀽锛圝DK1.8锛夈€婬ashtable锛氱敱鏁扮粍+閾捐〃缁勬垚锛屾暟缁勬槸Hashtable鐨勪富浣擄紝閾捐〃鏄竴涓猅reeMap锛屼富瑕佹槸涓轰簡瑙e喅hash鍐茬獊鑰屽瓨鍦ㄧ殑锛欻owtochooseasetfora绾㈤粦鏍戯紙鑷钩琛℃帓搴忎簩鍙夋爲锛夛紵涓昏鏄牴鎹棌鍝佺殑鐗圭偣鏉ラ€夋嫨銆傛瘮濡傛垜浠渶瑕佹牴鎹甼ey鍊艰幏鍙栧厓绱犲€肩殑鏃跺€欙紝鎴戜滑閫夋嫨Map鎺ュ彛涓嬬殑collection銆傚綋鎴戜滑闇€瑕佹帓搴忔椂锛屾垜浠€夋嫨TreeMap銆傚綋鎴戜滑涓嶉渶瑕佹帓搴忔椂锛屾垜浠€夋嫨HashMap銆傚鏋滄垜浠渶瑕佷繚璇佺嚎绋嬪畨鍏紝鎴戜滑閫夋嫨ConcurrentHashMap銆傚綋鎴戜滑鍙渶瑕佸瓨鍌ㄥ厓绱犲€兼椂锛屾垜浠€夋嫨涓€涓疄鐜颁簡Collection鎺ュ彛鐨勯泦鍚堛€傚綋鎴戜滑闇€瑕佷繚璇佸厓绱犵殑鍞竴鎬ф椂锛屾垜浠€夋嫨涓€涓疄鐜颁簡Set鎺ュ彛鐨勯泦鍚堬紝姣斿TreeSet鎴栬€匟ashSet銆傞€夋嫨杩欎簺鎺ュ彛闆嗗悎鐨勭壒寰併€備负浠€涔堣浣跨敤闆嗗悎锛熷綋鎴戜滑闇€瑕佷繚瀛樹竴缁勭浉鍚岀被鍨嬬殑鏁版嵁鏃讹紝搴旇浣跨敤瀹瑰櫒鏉ヤ繚瀛樸€傝繖涓鍣ㄦ槸涓€涓暟缁勩€備絾鏄敤鏁扮粍鏉ュ瓨鍌ㄥ璞′篃鏈変竴瀹氱殑缂虹偣锛屽洜涓哄湪鎴戜滑瀹為檯寮€鍙戜腑锛屽瓨鍌ㄧ殑鏁版嵁绫诲瀷鏄绉嶅鏍风殑锛屾墍浠ュ氨鍑虹幇浜嗏€滈泦鍚堚€濓紝闆嗗悎涔熸槸鐢ㄦ潵瀛樺偍澶氱鏁版嵁鐨勩€傛暟缁勭殑缂虹偣鏄竴鏃﹀0鏄庯紝闀垮害鏄笉鍙彉鐨勶紱鍚屾椂锛屽0鏄庢暟缁勬椂鐨勬暟鎹被鍨嬩篃鍐冲畾浜嗘暟缁勪腑瀛樺偍鐨勬暟鎹被鍨嬶紱鑰屼笖锛屾暟缁勪腑瀛樺偍鐨勬暟鎹槸鏈夊簭鐨勩€佸彲閲嶅鐨勶紝鍏锋湁鍗曚竴鐨勭壒鐐广€備絾鏄泦鍚堟彁楂樹簡鏁版嵁瀛樺偍鐨勭伒娲绘€с€侸ava闆嗗悎涓嶄粎鍙互瀛樺偍涓嶅悓绫诲瀷鍜屾暟閲忕殑瀵硅薄锛岃繕鍙互瀛樺偍鍏锋湁鏄犲皠鍏崇郴鐨勬暟鎹€侰ollection瀛愭帴鍙d腑鐨凩istArraylist鍜孷ector鏈変粈涔堝尯鍒紵ArrayList鏄疞ist鐨勪富瑕佸疄鐜扮被锛屽簳灞備娇鐢∣bject[]瀛樺偍锛岄€傚悎棰戠箒鏌ユ壘宸ヤ綔锛岀嚎绋嬩笉瀹夊叏锛沄ector鏄疞ist鐨勪竴涓彜鑰佺殑瀹炵幇绫伙紝搴曞眰浣跨敤Object[]瀛樺偍锛岀嚎绋嬪畨鍏ㄣ€侫rraylist鍜孡inkedList鏈変粈涔堝尯鍒紵鏄惁淇濊瘉绾跨▼瀹夊叏锛欰rrayList鍜孡inkedList閮芥槸寮傛鐨勶紝鍗充笉淇濊瘉绾跨▼瀹夊叏锛涘簳灞傛暟鎹粨鏋勶細Arraylist搴曞眰浣跨敤鐨勬槸Object鏁扮粍锛汱inkedList搴曞眰浣跨敤鐨勬槸鍙屽悜閾捐〃鏁版嵁缁撴瀯锛圝DK1.6涔嬪墠鏄惊鐜摼琛紝JDK1.7鍙栨秷浜嗗惊鐜€傛敞鎰忓弻鍚戦摼琛ㄥ拰鍙屽悜寰幆閾捐〃鐨勫尯鍒紝杩欓噷浠嬬粛涓嬮潰锛侊級鎻掑叆鍜屽垹闄ゆ槸鍚﹀彈鍏冪礌浣嶇疆鐨勫奖鍝嶏細ArrayList浣跨敤鏁扮粍瀛樺偍锛屾墍浠ュ厓绱犵殑鎻掑叆鍜屽垹闄ゆ椂闂村鏉傚害鍙楀厓绱犱綅缃殑褰卞搷銆備緥濡傦細鎵цadd(Ee)鏂规硶鏃讹紝ArrayList榛樿浼氬皢鎸囧畾鍏冪礌杩藉姞鍒板垪琛ㄦ湯灏俱€傚湪杩欑鎯呭喌涓嬶紝鏃堕棿澶嶆潅搴︿负O(1)銆備絾鏄鏋滆鍦ㄦ寚瀹氫綅缃甶澶勬彃鍏ュ拰鍒犻櫎鍏冪礌锛坅dd(intindex,Eelement)锛夛紝鏃堕棿澶嶆潅搴︿负O(n-i)銆傚洜涓哄湪杩涜涓婅堪鎿嶄綔鏃讹紝闆嗗悎涓i涓厓绱犱箣鍚庣殑绗琲涓拰绗?n-i)涓厓绱犻兘蹇呴』杩涜鍚戝悗/鍚戝墠绉诲姩涓€浣嶇殑鎿嶄綔銆侺inkedList瀛樺偍鍦ㄤ竴涓摼琛ㄤ腑锛屾墍浠ュ鏋滃湪澶村熬鎻掑叆鎴栧垹闄ゅ厓绱狅紝涓嶄細鍙楀埌鍏冪礌浣嶇疆鐨勫奖鍝?add(Ee),addFirst(Ee),addLast(Ee),removeFirst(),removeLast()),鏃堕棿澶嶆潅搴︿负O(1)銆傚鏋滆鍦ㄦ寚瀹氫綅缃甶鎻掑叆鍜屽垹闄ゅ厓绱?add(intindex,Eelement),remove(Objecto))锛屾椂闂村鏉傚害涓篛(n)锛屽洜涓洪渶瑕佸厛绉诲姩鍒版寚瀹氫綅缃紝鐒跺悗鎻掑叆銆傛槸鍚︽敮鎸佸揩閫熼殢鏈鸿闂細LinkedList涓嶆敮鎸侀珮鏁堢殑闅忔満鍏冪礌璁块棶锛岃€孉rrayList鏀寔銆傚揩閫熼殢鏈鸿闂槸閫氳繃鍏冪礌鐨勫簭鍙凤紙瀵瑰簲get(intindex)鏂规硶锛夊揩閫熻幏鍙栧厓绱犲璞°€傚唴瀛樼┖闂村崰鐢細ArrayList鐨勭┖闂存氮璐逛富瑕佷綋鐜板湪list鍒楄〃鏈熬棰勭暀浜嗕竴瀹氬閲忕殑绌洪棿锛岃€孡inkedList鐨勭┖闂村紑閿€浣撶幇鍦ㄥ畠鐨勬瘡涓€涓厓绱犻兘闇€瑕佹瘮ArrayList娑堣€楁洿澶氱殑绌洪棿锛堝洜涓哄畠闇€瑕佸瓨鍌ㄧ洿鎺ュ悗缁у拰鐩存帴鍓嶅鍜屾暟鎹級銆傛垜浠竴鑸笉浼氬湪椤圭洰涓娇鐢↙inkedList銆傚嚑涔庢墍鏈夐渶瑕丩inkedList鐨勫満鏅兘鍙互鐢ˋrrayList浠f浛锛岃€屼笖鎬ц兘閫氬父鏇村ソ锛佸氨杩濴inkedList鐨勪綔鑰匤oshBloch涔熻浠栬嚜宸辨案杩滀笉浼氫娇鐢↙inkedList銆傚彟澶栵紝涓嶈涓嬫剰璇嗙殑璁や负LinkedList鏈€閫傚悎浣滀负閾捐〃鏉ュ鍒犲厓绱犮€備笂闈㈡垜涔熻浜嗭紝LinkedList鐨勬椂闂村鏉傚害鍙湁鍦ㄥご閮ㄥ拰灏鹃儴鎻掑叆鎴栧垹闄ゅ厓绱犳椂澶х害涓篛(1)锛屽叾浠栨儏鍐典笅娣诲姞鎴栧垹闄ゅ厓绱犵殑鏃堕棿澶嶆潅搴︿负O(n)銆傝ˉ鍏呭唴瀹癸細鍙屽悜閾捐〃鍜屽弻鍚戝惊鐜摼琛ㄥ弻鍚戦摼琛細鍖呭惈涓や釜鎸囬拡锛屼竴涓猵rev鎸囧悜涓婁竴涓妭鐐癸紝涓€涓猲ext鎸囧悜涓嬩竴涓妭鐐广€傚彟澶栨帹鑽愪竴绡囨妸鍙屽悜閾捐〃瑙i噴娓呮鐨勬枃绔狅細https://juejin.cn/post/6844903648154271757鍙屽悜寰幆閾捐〃锛氭渶鍚庝竴涓妭鐐圭殑next鎸囧悜head锛宧ead鐨刾rev鎸囧悜head鍒版渶鍚庝竴涓妭鐐癸紝褰㈡垚涓€涓幆銆傝ˉ鍏呭唴瀹癸細RandomAccessinterfacepublicinterfaceRandomAccess{}鏌ョ湅婧愮爜锛屽彂鐜癛andomAccess鎺ュ彛涓叾瀹炲苟娌℃湁瀹氫箟浠€涔堛€傚洜姝わ紝鍦ㄦ垜鐪嬫潵锛孯andomAccess鎺ュ彛鍙笉杩囨槸涓€涓爣璇嗙銆傝瘑鍒粈涔堬紵瀹炵幇姝ゆ帴鍙g殑绫昏鏍囪瘑涓哄叿鏈夐殢鏈鸿闂姛鑳姐€傚湪binarySearch()鏂规硶涓紝闇€瑕佸垽鏂紶鍏ョ殑list鏄惁鏄疪andomAccess鐨勫疄渚嬶紝濡傛灉鏄紝鍒欒皟鐢╥ndexedBinarySearch()鏂规硶锛屽鏋滀笉鏄紝鍒欒皟鐢╥teratorBinarySearch()鏂规硶publicstatic
