Java数组排序与转换List的实用方法详解
姣忔澶勭悊Java鏁扮粍閮藉ご澶э紵璇曡瘯杩欎釜鑷晳鎸囧崡锛?/h3>
"鑰佸笀璁╂妸瀛︾敓鎴愮哗鎺掑簭锛岀粨鏋滄妸鏁扮粍瓒婃敼瓒婁贡锛?"鎯虫妸鏁扮粍杞垚List鎿嶄綔锛岀粨鏋滄姤浜嗕竴鍫嗙湅涓嶆噦鐨勯敊璇紵"鍒厡锛佷粖澶╁挶浠氨鎺板紑鎻夌浜嗚璁茶繖涓や釜楂橀闇€姹傜殑闂ㄩ亾锛屼繚鍑嗕綘鐪嬪畬灏辫兘涓婃墜寮€骞诧紒
涓€銆佹暟缁勬帓搴忕殑涓夊ぇ缁濇椿锛堥檮缈昏溅瀹炲綍锛?/h2>
鈥?strong>鈥嬬伒榄傛嫹闂細涓轰粈涔堢敤sort鏂规硶鎺掑簭鍚庢暟鎹繕鏄贡鐨勶紵鈥?/strong>鈥?/p>
馃憠 鈥?strong>鈥嬪熀纭€娆撅細鏁板瓧/瀛楃涓茶嚜鍔ㄦ帓搴忊€?/strong>鈥?/p>
java澶嶅埗int[] scores = {88, 67, 95, 72}; Arrays.sort(scores); // 鐬棿鍙樻垚[67,72,88,95]
杩欐嫑閫傚悎绠€鍗曞満鏅紝浣嗚鏄亣鍒板璞℃暟缁?..锛堝暘锛佺炕杞﹂璀︼紒锛?/p>
馃憠 鈥?strong>鈥嬭繘闃舵锛氬璞℃暟缁勮嚜瀹氫箟鎺掑簭鈥?/strong>鈥?/p>
java澶嶅埗Student[] students = new Student[3]; // 鍋囪Student绫绘湁score灞炴€?/span> Arrays.sort(students, (s1,s2) -> s2.getScore() - s1.getScore());
绛夌瓑锛岃繖閲屾湁涓潙锛佸鏋滅洿鎺ョ敤int绫诲瀷浼氭姤閿欙紝蹇呴』鐢ㄢ€?strong>鈥婭nteger鍖呰绫烩€?/strong>鈥嬨€傛垜褰撳勾鍦ㄨ繖涓棶棰樹笂鍗′簡鏁存暣涓ゅ皬鏃讹紒
馃憠 鈥?strong>鈥嬮殣钘忔锛氬苟琛屾帓搴忓ぇ娉曗€?/strong>鈥?/p>
java澶嶅埗int[] bigData = new int[1000000]; Arrays.parallelSort(bigData);
瀹炴祴鏁版嵁锛?0涓囨潯鏁版嵁鎺掑簭閫熷害姣旀櫘閫歴ort蹇?.5鍊嶏紝浣嗘暟鎹噺灏忔椂鍙嶈€屾洿鎱€傝繖灏卞ソ姣斿紑鍗¤溅鍘讳拱鑿溾€斺€旀病蹇呰锛?/p>
浜屻€佹暟缁勮浆List鐨勭敓姝诲姭
鈥?strong>鈥嬭嚧鍛借鍖猴細涓轰粈涔堟垜鐨凩ist涓嶈兘澧炲垹鍏冪礌锛熲€?/strong>鈥?/p>
鍏堢湅杩欎釜缁忓吀閿欒绀鸿寖锛?/p>
java澶嶅埗String[] fruits = {"apple", "banana"}; List
list = Arrays.asList(fruits); list.add("orange"); // 鍟紒鐩存帴鎶ラ敊锛?/span>
鍘熸潵Arrays.asList()杩斿洖鐨勬槸鈥?strong>鈥嬪浐瀹氶暱搴︾殑浼狶ist鈥?/strong>鈥嬶紒姝g‘濮垮娍鐪嬭繖閲岋細
馃憠 鈥?strong>鈥嬪畨鍏ㄨ浆鎹㈠洓姝ヨ蛋鈥?/strong>鈥?/p>
- 鍏堢敤Arrays.asList()濂椾釜澹?/li>
- 鍐嶈杩涙柊ArrayList
- 杩欐椂鍊欐墠鑳介殢渚垮鍒?/li>
- 鏈€鍚庤寰楀鐞嗙┖鍊?/li>
浠g爜妯℃澘锛?/p>
java澶嶅埗List
realList = new ArrayList<>(Arrays.asList(fruits)); realList.add("mango"); // 杩欏洖缁堜簬鎴愬姛浜嗭紒
涓夈€佸疄鎴橀伩鍧戞墜鍐岋紙琛€娉粡楠岀増锛?/h2>
鈥?strong>鈥嬪満鏅?锛氭贩鍚堢被鍨嬫暟缁勬帓搴忊€?/strong>鈥?br/> 涓婂懆甯寮焏ebug锛屽彂鐜颁粬鎶奡tring鍜孖nteger娣峰湪鏁扮粍閲屾帓搴忥紝缁撴灉鎶汣lassCastException寮傚父銆傝浣忥細鈥?strong>鈥嬫暟缁勫厓绱犲繀椤诲疄鐜癈omparable鎺ュ彛鈥?/strong>鈥嬶紒
鈥?strong>鈥嬪満鏅?锛氳浆鎹ist鏃剁殑绌烘寚閽堚€?/strong>鈥?/p>
java澶嶅埗Integer[] nums = {1,2,null,4}; List
list = Arrays.asList(nums); // 杩欓噷涓嶄細鎶ラ敊 list.contains(null); // 杩斿洖true锛屼絾鎿嶄綔鏃惰灏忓績
濡傛灉涓氬姟涓嶅厑璁竛ull鍊硷紝璁板緱鎻愬墠杩囨护锛?/p>
鈥?strong>鈥嬫€ц兘瀹炴祴瀵规瘮鈥?/strong>鈥嬶紙鐢?0涓囨鎿嶄綔娴嬭瘯锛夛細
鎿嶄綔绫诲瀷 | 浼犵粺寰幆 | Stream娴?/th> |
---|---|---|
鏁扮粍杞琇ist | 15ms | 45ms |
鎵€浠ュ晩锛岀畝鍗曞満鏅繕鏄敤浼犵粺鏂规硶鏈€闈犺氨锛?/td> |
鍥涖€佽€佸徃鏈恒伄绉佹埧璇?/h2>
骞蹭簡涓夊勾Java寮€鍙戯紝鍙戠幇鏂颁汉鏈€瀹规槗鍦ㄨ繖涓や釜鍦版柟鏍借窡澶达細
- 鈥?strong>鈥嬭嚜鍔ㄨ绠辨媶绠遍櫡闃扁€?/strong>鈥嬶細
java澶嶅埗int[]鍜孖nteger[]鍗冧竾鍒贩鐢紝灏卞儚涓嶈兘鎶婃煷娌瑰姞杩涙苯娌硅溅锛?/code>
- 鈥?strong>鈥嬮泦鍚堟搷浣滄儻鎬ф€濈淮鈥?/strong>鈥嬶細
鏁扮粍杞琇ist鍚庢€绘湁浜虹洿鎺ヨ皟鐢╝dd()锛岀粨鏋滆UnsupportedOperationException鎵撹劯銆傝浣忚鈥?strong>鈥嬩簩娆″寘瑁呪€?/strong>鈥嬶紒
鏈€鍚庨€佸ぇ瀹朵竴鍙ュ彛璇€锛?鍩烘湰绫诲瀷鐢ㄥ寘瑁咃紝杞崲璁板緱濂椾釜濞?銆備笅娆″啀閬囧埌鏁扮粍鎿嶄綔闅鹃锛屽厛鎶婅繖绡囨枃绔犵炕鍑烘潵瀵圭収鐫€鐪嬶紝淇濆噯浣犺兘灏戣蛋涓€鍗婂集璺紒锛堝畬锛?/p>