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涓細
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