Java涓璙ector鍜孉rrayList鐨勫尯鍒?(杞
Java涓璙ector鍜孉rrayList鐨勫尯鍒?(杞?
棣栧厛鐪嬭繖涓ょ被閮藉疄鐜癓ist鎺ュ彛锛岃€孡ist鎺ュ彛涓€鍏辨湁涓変釜瀹炵幇绫伙紝鍒嗗埆鏄疉rrayList銆乂ector鍜孡inkedList銆侺ist鐢ㄤ簬瀛樻斁澶氫釜鍏冪礌锛岃兘澶熺淮鎶ゅ厓绱犵殑娆″簭锛屽苟涓斿厑璁稿厓绱犵殑閲嶅銆?涓叿浣撳疄鐜扮被鐨勭浉鍏冲尯鍒涓嬶細
ArrayList鏄渶甯哥敤鐨凩ist瀹炵幇绫伙紝鍐呴儴鏄€氳繃鏁扮粍瀹炵幇鐨勶紝瀹冨厑璁稿鍏冪礌杩涜蹇€熼殢鏈鸿闂€傛暟缁勭殑缂虹偣鏄瘡涓厓绱犱箣闂翠笉鑳芥湁闂撮殧锛屽綋鏁扮粍澶у皬涓嶆弧瓒虫椂闇€瑕佸鍔犲瓨鍌ㄨ兘鍔涳紝灏辫璁插凡缁忔湁鏁扮粍鐨勬暟鎹鍒跺埌鏂扮殑瀛樺偍绌洪棿涓€傚綋浠嶢rrayList鐨勪腑闂翠綅缃彃鍏ユ垨鑰呭垹闄ゅ厓绱犳椂锛岄渶瑕佸鏁扮粍杩涜澶嶅埗銆佺Щ鍔ㄣ€佷唬浠锋瘮杈冮珮銆傚洜姝わ紝瀹冮€傚悎闅忔満鏌ユ壘鍜岄亶鍘嗭紝涓嶉€傚悎鎻掑叆鍜屽垹闄ゃ€?
Vector涓嶢rrayList涓€鏍凤紝涔熸槸閫氳繃鏁扮粍瀹炵幇鐨勶紝涓嶅悓鐨勬槸瀹冩敮鎸佺嚎绋嬬殑鍚屾锛屽嵆鏌愪竴鏃跺埢鍙湁涓€涓嚎绋嬭兘澶熷啓Vector锛岄伩鍏嶅绾跨▼鍚屾椂鍐欒€屽紩璧风殑涓嶄竴鑷存€э紝浣嗗疄鐜板悓姝ラ渶瑕佸緢楂樼殑鑺辫垂锛屽洜姝わ紝璁块棶瀹冩瘮璁块棶ArrayList鎱€?
LinkedList鏄敤閾捐〃缁撴瀯瀛樺偍鏁版嵁鐨勶紝寰堥€傚悎鏁版嵁鐨勫姩鎬佹彃鍏ュ拰鍒犻櫎锛岄殢鏈鸿闂拰閬嶅巻閫熷害姣旇緝鎱€傚彟澶栵紝浠栬繕鎻愪緵浜哃ist鎺ュ彛涓病鏈夊畾涔夌殑鏂规硶锛屼笓闂ㄧ敤浜庢搷浣滆〃澶村拰琛ㄥ熬鍏冪礌锛屽彲浠ュ綋浣滃爢鏍堛€侀槦鍒楀拰鍙屽悜闃熷垪浣跨敤銆?
鏌ョ湅Java婧愪唬鐮侊紝鍙戠幇褰撴暟缁勭殑澶у皬涓嶅鐨勬椂鍊欙紝闇€瑕侀噸鏂板缓绔嬫暟缁勶紝鐒跺悗灏嗗厓绱犳嫹璐濆埌鏂扮殑鏁扮粍鍐咃紝ArrayList鍜孷ector鐨勬墿灞曟暟缁勭殑澶у皬涓嶅悓銆?
ArrayList涓細
Vector涓細
鍏充簬ArrayList鍜孷ector鍖哄埆濡備笅锛?
1.ArrayList鍦ㄥ唴瀛樹笉澶熸椂榛樿鏄墿灞?0% + 1涓紝Vector鏄粯璁ゆ墿灞?鍊嶃€?
2.Vector鎻愪緵indexOf(obj, start)鎺ュ彛锛孉rrayList娌℃湁銆?
3.Vector灞炰簬绾跨▼瀹夊叏绾у埆鐨勶紝浣嗘槸澶у鏁版儏鍐典笅涓嶄娇鐢╒ector锛屽洜涓虹嚎绋嬪畨鍏ㄩ渶瑕佹洿澶х殑绯荤粺寮€閿€銆?
杞嚜 http://www.cnblogs.com/wanlipeng/archive/2010/10/21/1857791.html
棣栧厛鐪嬭繖涓ょ被閮藉疄鐜癓ist鎺ュ彛锛岃€孡ist鎺ュ彛涓€鍏辨湁涓変釜瀹炵幇绫伙紝鍒嗗埆鏄疉rrayList銆乂ector鍜孡inkedList銆侺ist鐢ㄤ簬瀛樻斁澶氫釜鍏冪礌锛岃兘澶熺淮鎶ゅ厓绱犵殑娆″簭锛屽苟涓斿厑璁稿厓绱犵殑閲嶅銆?涓叿浣撳疄鐜扮被鐨勭浉鍏冲尯鍒涓嬶細
ArrayList鏄渶甯哥敤鐨凩ist瀹炵幇绫伙紝鍐呴儴鏄€氳繃鏁扮粍瀹炵幇鐨勶紝瀹冨厑璁稿鍏冪礌杩涜蹇€熼殢鏈鸿闂€傛暟缁勭殑缂虹偣鏄瘡涓厓绱犱箣闂翠笉鑳芥湁闂撮殧锛屽綋鏁扮粍澶у皬涓嶆弧瓒虫椂闇€瑕佸鍔犲瓨鍌ㄨ兘鍔涳紝灏辫璁插凡缁忔湁鏁扮粍鐨勬暟鎹鍒跺埌鏂扮殑瀛樺偍绌洪棿涓€傚綋浠嶢rrayList鐨勪腑闂翠綅缃彃鍏ユ垨鑰呭垹闄ゅ厓绱犳椂锛岄渶瑕佸鏁扮粍杩涜澶嶅埗銆佺Щ鍔ㄣ€佷唬浠锋瘮杈冮珮銆傚洜姝わ紝瀹冮€傚悎闅忔満鏌ユ壘鍜岄亶鍘嗭紝涓嶉€傚悎鎻掑叆鍜屽垹闄ゃ€?
Vector涓嶢rrayList涓€鏍凤紝涔熸槸閫氳繃鏁扮粍瀹炵幇鐨勶紝涓嶅悓鐨勬槸瀹冩敮鎸佺嚎绋嬬殑鍚屾锛屽嵆鏌愪竴鏃跺埢鍙湁涓€涓嚎绋嬭兘澶熷啓Vector锛岄伩鍏嶅绾跨▼鍚屾椂鍐欒€屽紩璧风殑涓嶄竴鑷存€э紝浣嗗疄鐜板悓姝ラ渶瑕佸緢楂樼殑鑺辫垂锛屽洜姝わ紝璁块棶瀹冩瘮璁块棶ArrayList鎱€?
LinkedList鏄敤閾捐〃缁撴瀯瀛樺偍鏁版嵁鐨勶紝寰堥€傚悎鏁版嵁鐨勫姩鎬佹彃鍏ュ拰鍒犻櫎锛岄殢鏈鸿闂拰閬嶅巻閫熷害姣旇緝鎱€傚彟澶栵紝浠栬繕鎻愪緵浜哃ist鎺ュ彛涓病鏈夊畾涔夌殑鏂规硶锛屼笓闂ㄧ敤浜庢搷浣滆〃澶村拰琛ㄥ熬鍏冪礌锛屽彲浠ュ綋浣滃爢鏍堛€侀槦鍒楀拰鍙屽悜闃熷垪浣跨敤銆?
鏌ョ湅Java婧愪唬鐮侊紝鍙戠幇褰撴暟缁勭殑澶у皬涓嶅鐨勬椂鍊欙紝闇€瑕侀噸鏂板缓绔嬫暟缁勶紝鐒跺悗灏嗗厓绱犳嫹璐濆埌鏂扮殑鏁扮粍鍐咃紝ArrayList鍜孷ector鐨勬墿灞曟暟缁勭殑澶у皬涓嶅悓銆?
ArrayList涓細
public boolean add(E e) { ensureCapacity(size + 1); // 澧炲姞鍏冪礌锛屽垽鏂槸鍚﹁兘澶熷绾炽€備笉鑳界殑璇濆氨瑕佹柊寤烘暟缁? elementData[size++] = e; return true; } public void ensureCapacity(int minCapacity) { modCount++; int oldCapacity = elementData.length; if (minCapacity > oldCapacity) { Object oldData[] = elementData; // 姝よ娌$湅鍑烘潵鐢ㄥ锛屼笉鐭ラ亾寮€鍙戣€呭嚭浜庝粈涔堣€冭檻 int newCapacity = (oldCapacity * 3)/2 + 1; // 澧炲姞鏂扮殑鏁扮粍鐨勫ぇ灏? if (newCapacity < minCapacity) newCapacity = minCapacity; // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); } }
Vector涓細
private void ensureCapacityHelper(int minCapacity) { int oldCapacity = elementData.length; if (minCapacity > oldCapacity) { Object[] oldData = elementData; int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : (oldCapacity * 2); if (newCapacity < minCapacity) { newCapacity = minCapacity; } elementData = Arrays.copyOf(elementData, newCapacity); } }
鍏充簬ArrayList鍜孷ector鍖哄埆濡備笅锛?
1.ArrayList鍦ㄥ唴瀛樹笉澶熸椂榛樿鏄墿灞?0% + 1涓紝Vector鏄粯璁ゆ墿灞?鍊嶃€?
2.Vector鎻愪緵indexOf(obj, start)鎺ュ彛锛孉rrayList娌℃湁銆?
3.Vector灞炰簬绾跨▼瀹夊叏绾у埆鐨勶紝浣嗘槸澶у鏁版儏鍐典笅涓嶄娇鐢╒ector锛屽洜涓虹嚎绋嬪畨鍏ㄩ渶瑕佹洿澶х殑绯荤粺寮€閿€銆?
杞嚜 http://www.cnblogs.com/wanlipeng/archive/2010/10/21/1857791.html