
嘻道奇闻
- 文章199742
- 阅读14625734
Java中List和ArrayList长度获取的正确方式
鏈夋病鏈変汉鍦ㄧ敤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> |
杞崲鎴愭暟缁勫啀鍙杔ength | 2,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>
-
鈥?strong>鈥嬫彁鍓嶅瓨鍙橀噺鈥?/strong>鈥嬶細鍦ㄥ惊鐜噷鍙嶅璋冪敤size()浼氬奖鍝嶆€ц兘
java澶嶅埗// 閿欒绀鸿寖
for(int i=0; i// 姝g‘濮垮娍
int total = list.size();
for(int i=0; i
-
鈥?strong>鈥嬬┖闆嗗悎鍒ゆ柇鈥?/strong>鈥嬶細鍒敤size()==0锛岀敤鈥?strong>鈥媔sEmpty()鈥?/strong>鈥嬫洿涓撲笟
java澶嶅埗if(!list.isEmpty()){...} // 姣攍ist.size()>0鏇寸洿瑙?/span>
-
鈥?strong>鈥嬫祦寮忓鐞嗏€?/strong>鈥嬶細Java8浠ュ悗鍙互鐜╃偣鑺辩殑
java澶嶅埗long count = list.stream().count(); // 铏界劧杩樻槸璋冪敤size()
鈥?strong>鈥嬫彁鍓嶅瓨鍙橀噺鈥?/strong>鈥嬶細鍦ㄥ惊鐜噷鍙嶅璋冪敤size()浼氬奖鍝嶆€ц兘
java澶嶅埗// 閿欒绀鸿寖 for(int i=0; i
// 姝g‘濮垮娍 int total = list.size(); for(int i=0; i
鈥?strong>鈥嬬┖闆嗗悎鍒ゆ柇鈥?/strong>鈥嬶細鍒敤size()==0锛岀敤鈥?strong>鈥媔sEmpty()鈥?/strong>鈥嬫洿涓撲笟
java澶嶅埗if(!list.isEmpty()){...} // 姣攍ist.size()>0鏇寸洿瑙?/span>
鈥?strong>鈥嬫祦寮忓鐞嗏€?/strong>鈥嬶細Java8浠ュ悗鍙互鐜╃偣鑺辩殑
java澶嶅埗long count = list.stream().count(); // 铏界劧杩樻槸璋冪敤size()
鎴戜釜浜虹殑缁忛獙鏄細鈥?strong>鈥嬪埆鏁撮偅浜涜姳閲岃儭鍝ㄧ殑鎿嶄綔鈥?/strong>鈥嬶紝鑰佽€佸疄瀹炵敤size()姣斿暐閮藉己銆傚氨鍍忓悆楗鐢ㄧ瀛愶紝鍠濇堡瑕佺敤鍕哄瓙锛屽伐鍏风敤瀵逛簡浜嬪崐鍔熷€嶃€傛渶鍚庨€佸ぇ瀹朵竴鍙ヨ瘽锛氬湪Java鐨勪笘鐣岄噷锛岀湅鍒癓ist灏辨壘size()锛屽氨鍍忕湅鍒扮孩缁跨伅瑕佺煡閬撳仠璧颁竴鏍疯嚜鐒讹紒