首页 > 社会 > 正文内容

Java中List和ArrayList长度获取的正确方式

社会2025-05-27 14:44:11

鏈夋病鏈変汉鍦ㄧ敤Java鐨勬椂鍊欙紝绐佺劧鍗″湪"杩欎釜闆嗗悎鍒板簳鏈夊灏戜釜鍏冪礌鍟婏紵"鐨勯棶棰樹笂锛熷埆鎱岋紝浠婂ぉ鍜变滑灏辨幇鎵竻妤氳繖浠朵簨鍎裤€傛垜瑙佽繃涓嶅皯鏂版墜鍦ㄨ幏鍙朙ist闀垮害鏃堕椆鍑虹瑧璇濓紝姣斿鐢ㄥ惊鐜暟鏁般€佽皟鏁扮粍闀垮害灞炴€э紝鐢氳嚦杩樻湁浜烘兂鐢ㄧО閲嶆硶锛堣繖涓湡娌℃湁锛夈€傚叾瀹炶繖浜嬪効鐗瑰埆绠€鍗曪紝鍙璁颁綇涓変釜瀛椻€斺€斺€?strong>鈥嬬敤size()鈥?/strong>鈥嬶紒


涓€銆丩ist鍜孉rrayList鍒板簳鍟ュ叧绯伙紵

鍜变滑鍏堟悶鏄庣櫧杩欎袱涓蹇电殑鍏崇郴銆傗€?strong>鈥婰ist鏄釜鎺ュ彛鈥?/strong>鈥嬶紝灏卞儚"浼氶鐨勫姩鐗?杩欎釜绫诲埆锛涒€?strong>鈥婣rrayList鏄叿浣撳疄鐜扮被鈥?/strong>鈥嬶紝鐩稿綋浜?楦藉瓙"杩欑鐪熷疄瀛樺湪鐨勭敓鐗┿€傞噸鐐规潵浜嗭細鎵€鏈塋ist鐨勫疄鐜扮被锛堟瘮濡侺inkedList銆乂ector锛夐兘閬靛畧鍚屼竴涓鐭┾€斺€斺€?strong>鈥嬪繀椤诲疄鐜皊ize()鏂规硶鈥?/strong>鈥嬶紒

涓句釜鏍楀瓙馃尠锛?/p>

java澶嶅埗
// 瓒呭競璐墿杞﹀満鏅?/span>
List cartA = new ArrayList<>();  // 閾佺毊璐墿杞?/span>
List cartB = new LinkedList<>(); // 濉戞枡璐墿杞?/span>

cartA.add("钖墖"); 
cartB.add("鍙箰");

System.out.println(cartA.size()); // 杈撳嚭1
System.out.println(cartB.size()); // 鍚屾牱杈撳嚭1

浣犵湅锛屼笉绠℃槸浠€涔堟潗璐ㄧ殑璐墿杞︼紝鍜遍兘鐢ㄥ悓涓€涓柟娉曟煡瀹归噺銆傝繖灏卞彨"鎺ュ彛鐨勫▉鍔?锛?/p>


浜屻€侀偅浜涘勾韪╄繃鐨勫潙

鏂版墜鏈€瀹规槗鐘殑閿欏氨鏄€?strong>鈥嬫妸鏁扮粍鐨刲ength灞炴€у拰闆嗗悎鐨剆ize()鎼炴贩鈥?/strong>鈥嬨€傚挶浠潵鍋氫釜灏忓疄楠岋細

java澶嶅埗
String[] arr = {"鑻规灉","棣欒晧"};
List list = Arrays.asList(arr);

System.out.println(arr.length);  // 姝g‘锛佹暟缁勭敤length
System.out.println(list.size()); // 姝g‘锛侀泦鍚堢敤size()

// 閿欒绀鸿寖锛?/span>
System.out.println(list.length()); // 缂栬瘧鎶ラ敊
System.out.println(arr.size());    // 缂栬瘧鎶ラ敊

璁颁綇浜嗗晩锛氣€?strong>鈥嬫暟缁勭敤.length锛堝睘鎬э級锛岄泦鍚堢敤.size()锛堟柟娉曪級鈥?/strong>鈥嬨€傝繖淇╄鏄敤鍙嶄簡锛岀紪璇戝櫒鐩存帴缁欎綘鐢╄劯瀛愮湅锛?/p>


涓夈€佹€ц兘瀵规瘮澶ф彮绉?/h3>

鏈変汉璇达細"鐢ㄥ惊鐜暟鏁版洿鍙潬鍚э紵"鍜变滑鐢ㄦ暟鎹璇濄€傚噯澶囦釜10涓囧厓绱犵殑ArrayList锛?/p>

鏂规硶鑰楁椂锛堢撼绉掞級鍙鎬?/th>閫氱敤鎬?/th>
size()15鈽呪槄鈽呪槄鈽?/td>鈽呪槄鈽呪槄鈽?/td>
鎵嬪姩寰幆璁℃暟120,000鈽呪槄鈽嗏槅鈽?/td>鈽呪槅鈽嗏槅鈽?/td>
杞崲鎴愭暟缁勫啀鍙杔ength2,300鈽呪槄鈽呪槅鈽?/td>鈽呪槄鈽嗏槅鈽?/td>

鈥?strong>鈥嬭娉暀璁€?/strong>鈥嬶細鐢ㄥ惊鐜鏁扮浉褰撲簬鎶婄幇鎴愮殑鐢垫涓嶇敤闈炶鐖ゼ姊€侫rrayList鏃╁氨鎶婂厓绱犱釜鏁板瓨鍦ㄥ彉閲忛噷浜嗭紝size()灏辨槸鐩存帴鎶婅繖涓€兼帍鍑烘潵缁欎綘鐪嬶紒


鍥涖€佸绾跨▼涓嬬殑鐗规畩鐘跺喌

閬囧埌澶氫釜绾跨▼鍚屾椂鎿嶄綔闆嗗悎鏃讹紝浜嬫儏灏卞埡婵€浜嗐€傛瘮濡傚弻鍗佷竴鎶㈣喘锛?/p>

java澶嶅埗
List hotItems = new ArrayList<>();

// 绾跨▼1锛氱柉鐙傚姞璐?/span>
new Thread(() -> {
    for(int i=0; i<1000; i++){
        hotItems.add("iPhone");
    }
}).start();

// 绾跨▼2锛氬疄鏃舵煡搴撳瓨
new Thread(() -> {
    for(int i=0; i<1000; i++){
        System.out.println(hotItems.size()); // 杈撳嚭鍙兘蹇藉ぇ蹇藉皬
    }
}).start();

杩欐椂鍊欑洿鎺ヨ皟鐢╯ize()鍙兘鎷垮埌杩囨湡鏁版嵁銆傝В鍐虫柟娉曞緢绠€鍗曪細鈥?strong>鈥嬬敤Collections.synchronizedList鍖呰闆嗗悎鈥?/strong>鈥嬶紝鎴栬€呮敼鐢–opyOnWriteArrayList杩欑绾跨▼瀹夊叏鐨勫疄鐜扮被銆?/p>


浜斻€佸紑鍙戜腑鐨勫疄鎴樻妧宸?/h3>
  1. 鈥?strong>鈥嬫彁鍓嶅瓨鍙橀噺鈥?/strong>鈥嬶細鍦ㄥ惊鐜噷鍙嶅璋冪敤size()浼氬奖鍝嶆€ц兘

    java澶嶅埗
    // 閿欒绀鸿寖
    for(int i=0; i// 姝g‘濮垮娍
    int total = list.size();
    for(int i=0; i
  2. 鈥?strong>鈥嬬┖闆嗗悎鍒ゆ柇鈥?/strong>鈥嬶細鍒敤size()==0锛岀敤鈥?strong>鈥媔sEmpty()鈥?/strong>鈥嬫洿涓撲笟

    java澶嶅埗
    if(!list.isEmpty()){...} // 姣攍ist.size()>0鏇寸洿瑙?/span>
  3. 鈥?strong>鈥嬫祦寮忓鐞嗏€?/strong>鈥嬶細Java8浠ュ悗鍙互鐜╃偣鑺辩殑

    java澶嶅埗
    long count = list.stream().count(); // 铏界劧杩樻槸璋冪敤size()

鎴戜釜浜虹殑缁忛獙鏄細鈥?strong>鈥嬪埆鏁撮偅浜涜姳閲岃儭鍝ㄧ殑鎿嶄綔鈥?/strong>鈥嬶紝鑰佽€佸疄瀹炵敤size()姣斿暐閮藉己銆傚氨鍍忓悆楗鐢ㄧ瀛愶紝鍠濇堡瑕佺敤鍕哄瓙锛屽伐鍏风敤瀵逛簡浜嬪崐鍔熷€嶃€傛渶鍚庨€佸ぇ瀹朵竴鍙ヨ瘽锛氬湪Java鐨勪笘鐣岄噷锛岀湅鍒癓ist灏辨壘size()锛屽氨鍍忕湅鍒扮孩缁跨伅瑕佺煡閬撳仠璧颁竴鏍疯嚜鐒讹紒

搜索