資源描述:
《java.util.arrays類詳解(源碼總結(jié))》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、鄭州IT培訓(xùn)首選達(dá)內(nèi),專注IT培訓(xùn)13年,java,UI,php,Android,IOS,,軟件測(cè)試linux,.net,Unity3d,會(huì)計(jì),網(wǎng)絡(luò)營(yíng)銷等共16大培訓(xùn)課程,美國(guó)上市公司,15萬(wàn)大學(xué)生共同的選擇!zz.tedu.cnQQ:3158895217?java.util.Arrays類詳解(源碼總結(jié))概述Arrays類位于java.util包下,是一個(gè)對(duì)數(shù)組操作的工具類。今天詳細(xì)的看了看Arrays類的4千多行源碼,現(xiàn)將Arrays類中的方法做一個(gè)總結(jié)(JDK版本:1.6.0_34)。Arrays類中的方法可以分為八類:·sort(對(duì)數(shù)組排序)·binarySearch(
2、二分法查找數(shù)組中的元素)·equals(比較兩個(gè)數(shù)組是否相等)·fill(對(duì)數(shù)組中的指定位置填充相同的內(nèi)容)·copyOf(數(shù)組拷貝)·asList(將數(shù)組轉(zhuǎn)換為一個(gè)固定的List對(duì)象)·hashCode(計(jì)算數(shù)組的哈希值)·toString(以特定格式輸出數(shù)組)舉例說(shuō)明說(shuō)明:以下的代碼均為摘抄的java.util.Arrays類中的源碼,注釋為本人所加。sort//對(duì)數(shù)組a進(jìn)行排序publicstaticvoidsort(long[]a){sort1(a,0,a.length);鄭州IT培訓(xùn)首選鄭州達(dá)內(nèi),億元級(jí)外企IT培訓(xùn)領(lǐng)軍企業(yè)鄭州IT培訓(xùn)首選達(dá)內(nèi),專注IT培訓(xùn)13年,ja
3、va,UI,php,Android,IOS,,軟件測(cè)試linux,.net,Unity3d,會(huì)計(jì),網(wǎng)絡(luò)營(yíng)銷等共16大培訓(xùn)課程,美國(guó)上市公司,15萬(wàn)大學(xué)生共同的選擇!zz.tedu.cnQQ:3158895217}//對(duì)數(shù)組a中的從fromIndex(包含)至toIndex(不包含)的值進(jìn)行排序publicstaticvoidsort(long[]a,intfromIndex,inttoIndex){rangeCheck(a.length,fromIndex,toIndex);sort1(a,fromIndex,toIndex-fromIndex);}/**對(duì)基本類型數(shù)組的排序有
4、以上兩種方法,這里只摘出了long類型的。sort1方法篇幅原因沒(méi)有摘出來(lái),在sort1方法中使用的是經(jīng)過(guò)調(diào)優(yōu)的快速排序算法(tunedquicksort)。**/..............................//對(duì)對(duì)象類型進(jìn)行排序publicstaticvoidsort(Object[]a){Object[]aux=(Object[])a.clone();mergeSort(aux,a,0,a.length,0);}//對(duì)對(duì)象a中的從fromIndex(包含)至toIndex(不包含)的值進(jìn)行排序publicstaticvoidsort(Object[]a,in
5、tfromIndex,inttoIndex){rangeCheck(a.length,fromIndex,toIndex);Object[]aux=copyOfRange(a,fromIndex,toIndex);鄭州IT培訓(xùn)首選鄭州達(dá)內(nèi),億元級(jí)外企IT培訓(xùn)領(lǐng)軍企業(yè)鄭州IT培訓(xùn)首選達(dá)內(nèi),專注IT培訓(xùn)13年,java,UI,php,Android,IOS,,軟件測(cè)試linux,.net,Unity3d,會(huì)計(jì),網(wǎng)絡(luò)營(yíng)銷等共16大培訓(xùn)課程,美國(guó)上市公司,15萬(wàn)大學(xué)生共同的選擇!zz.tedu.cnQQ:3158895217mergeSort(aux,a,fromIndex,toInd
6、ex,-fromIndex);}/**對(duì)對(duì)象類型數(shù)組的排序有以上兩種方法,在mergeSort方法中使用的是經(jīng)過(guò)修改的歸并排序算法(modifiedmergesort)。**/binarySearchpublicstaticintbinarySearch(long[]a,longkey){returnbinarySearch0(a,0,a.length,key);}publicstaticintbinarySearch(long[]a,intfromIndex,inttoIndex,longkey){rangeCheck(a.length,fromIndex,toIndex);
7、returnbinarySearch0(a,fromIndex,toIndex,key);}/**對(duì)數(shù)組中元素的查找有以上兩種方法,在binarySearch0方法中使用的是二分查找法。并且對(duì)基本類型和對(duì)象類型的數(shù)組查找是同樣的操作。**/鄭州IT培訓(xùn)首選鄭州達(dá)內(nèi),億元級(jí)外企IT培訓(xùn)領(lǐng)軍企業(yè)鄭州IT培訓(xùn)首選達(dá)內(nèi),專注IT培訓(xùn)13年,java,UI,php,Android,IOS,,軟件測(cè)試linux,.net,Unity3d,會(huì)計(jì),網(wǎng)絡(luò)營(yíng)銷等共16大培訓(xùn)課程,美國(guó)上市公司,15萬(wàn)大學(xué)生共同的