數(shù)組常用方法

數(shù)組常用方法:(這些方法是Arrays類下的)
toString():將數(shù)組轉(zhuǎn)換成一個(gè)字符串
sort():對(duì)數(shù)組進(jìn)行升序排序
binarySearch():二分法查找數(shù)組中的元素,返回指定數(shù)組中指定元素對(duì)應(yīng)的索引。使用前提:進(jìn)行查找的是一個(gè)有序數(shù)組
equals():比較兩個(gè)數(shù)組中的元素是否相等。數(shù)組元素個(gè)數(shù)、元素順序都相同則返回true。 另外,如果兩個(gè)數(shù)組引用都是null,則它們被認(rèn)為是相等的
copyOf():復(fù)制數(shù)組,從下標(biāo)0開(kāi)始截取一定長(zhǎng)度,返回截取出來(lái)的新數(shù)組
copyOfRange():復(fù)制數(shù)組,從一段區(qū)間的下標(biāo)開(kāi)始截取,返回截取出來(lái)的新數(shù)組
fill():填充數(shù)組。fill(arr,ele):將整個(gè)數(shù)組以元素ele填充。fill(arr,m,n,ele):區(qū)間[m,n)以元素ele填充,從下標(biāo)m開(kāi)始,到下標(biāo)n-1結(jié)束

import java.util.Arrays;
public class TestArray12{
    public static void main(String[] args){
        //給定一個(gè)數(shù)組
        int[] arr = {22,99,123,45,450,66,888};
        //toString:對(duì)數(shù)組進(jìn)行遍歷,返回?cái)?shù)組轉(zhuǎn)換成的一個(gè)字符串
        System.out.println(Arrays.toString(arr));
        //binarySearch:二分法查找---返回指定數(shù)組中指定元素對(duì)應(yīng)的索引,使用前提:查找的是一個(gè)有序的數(shù)組
        //對(duì)無(wú)序數(shù)組查找,不能返回元素正常對(duì)應(yīng)索引
        System.out.println(Arrays.binarySearch(arr,450));   
        
        //sort:升序排序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        //binarySearch需要對(duì)排序后的數(shù)組進(jìn)行元素查找
        System.out.println(Arrays.binarySearch(arr,450));
        //copyOf:完成數(shù)組的復(fù)制,從下標(biāo)0開(kāi)始,截取3位
        int[] arr2 = Arrays.copyOf(arr,3);
        System.out.println(Arrays.toString(arr2));
        //copyOfRange:區(qū)間復(fù)制,截取區(qū)間[2,6),包含下標(biāo)2,不包含下標(biāo)6
        int[] arr3 = Arrays.copyOfRange(arr,2,6);
        System.out.println(Arrays.toString(arr3));
        //equals:比較兩個(gè)數(shù)組的值是否一樣
        int[] arr4 = {1,2,450,666};
        int[] arr5 = {1,2,450,666};
        //equals比較的是數(shù)組中相同下標(biāo)每個(gè)元素的值是否相等
        System.out.println(Arrays.equals(arr4,arr5));
        //== 比較的是arr3,arr4兩個(gè)變量值是否相等,arr3,arr4存儲(chǔ)的是數(shù)組對(duì)應(yīng)的地址值,地址不同,比較結(jié)果不等
        System.out.println(arr4 == arr5);
        //fill:填充數(shù)組
        //整個(gè)數(shù)組填充某個(gè)值
        int[] arr6 = {11,33,45,66,88,22,99};
        Arrays.fill(arr6,666);
        System.out.println(Arrays.toString(arr6));
        //數(shù)組某個(gè)區(qū)間填充某個(gè)值
        int[] arr7 = {11,33,45,66,88,22,99};
        Arrays.fill(arr7,2,5,888);
        System.out.println(Arrays.toString(arr7));
    }
}

打印結(jié)果:


常用方法.jpg

還有一個(gè)復(fù)制數(shù)組的方法:arraycopy(scrArr,m,destArr,n,length),該方法是System類下的
scrArr:源數(shù)組
m:源數(shù)組要開(kāi)始復(fù)制的位置(下標(biāo))
destArr:目標(biāo)數(shù)組
n:目標(biāo)數(shù)組要復(fù)制到的位置(下標(biāo))
length:要復(fù)制的長(zhǎng)度

例子:

import java.util.Arrays;
public class TestArray13{
    public static void main(String[] args){
        //數(shù)組復(fù)制System.arraycopy(scrArr,m,destArr,n,length) ,
        //源數(shù)組,源數(shù)組要開(kāi)始復(fù)制的位置,目標(biāo)數(shù)組,目標(biāo)數(shù)組要復(fù)制過(guò)去的位置,要復(fù)制的長(zhǎng)度
        
        //給定一個(gè)數(shù)組,原數(shù)組
        int[] srcArr = {11, 33, 22, 66, 88, 99, 450, 110};
        //目標(biāo)數(shù)組
        int[] destArr = new int[12];
        //復(fù)制
        System.arraycopy(srcArr,3,destArr,5,4);
        //遍歷輸出數(shù)組
        System.out.println(Arrays.toString(destArr));   
    }
}

打印結(jié)果:


復(fù)制.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容