欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java從入門到起飛之?dāng)?shù)組使用詳解

 更新時間:2025年03月18日 09:07:18   作者:I'm?Joe  
這篇文章主要介紹了Java從入門到起飛之?dāng)?shù)組使用的相關(guān)資料,包括數(shù)組的聲明、初始化、長度、索引、遍歷和默認(rèn)值等內(nèi)容,還介紹了Arrays工具類中常用的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. 數(shù)組的概述

1.1 為什么需要數(shù)組

需求分析1:

需要統(tǒng)計某公司50個員工的工資情況,例如計算平均工資、找到最高工資等。用之前知識,首先需要聲明50個變量來分別記錄每位員工的工資,這樣會很麻煩。因此我們可以將所有的數(shù)據(jù)全部存儲到一個容器中統(tǒng)一管理,并使用容器進行計算。

容器的概念:

  • 生活中的容器:水杯(裝水等液體),衣柜(裝衣服等物品),集裝箱(裝貨物等)。
  • 程序中的容器:將多個數(shù)據(jù)存儲到一起,每個數(shù)據(jù)稱為該容器的元素。

1.2 數(shù)組的概念

  • 數(shù)組(Array),是多個相同類型數(shù)據(jù)按一定順序排列的集合,并使用一個名字命名,并通過編號的方式對這些數(shù)據(jù)進行統(tǒng)一管理。

  • 數(shù)組中的概念

    • 數(shù)組名
    • 下標(biāo)(或索引)
    • 元素
    • 數(shù)組的長度

數(shù)組的特點:

  • 數(shù)組本身是引用數(shù)據(jù)類型,而數(shù)組中的元素可以是任何數(shù)據(jù)類型,包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。
  • 創(chuàng)建數(shù)組對象會在內(nèi)存中開辟一整塊連續(xù)的空間。占據(jù)的空間的大小,取決于數(shù)組的長度和數(shù)組中元素的類型。
  • 數(shù)組中的元素在內(nèi)存中是依次緊密排列的,有序的。
  • 數(shù)組,一旦初始化完成,其長度就是確定的。數(shù)組的長度一旦確定,就不能修改。
  • 我們可以直接通過下標(biāo)(或索引)的方式調(diào)用指定位置的元素,速度很快。
  • 數(shù)組名中引用的是這塊連續(xù)空間的首地址。

1.3 數(shù)組的分類

1、按照元素類型分:

  • 基本數(shù)據(jù)類型元素的數(shù)組:每個元素位置存儲基本數(shù)據(jù)類型的值
  • 引用數(shù)據(jù)類型元素的數(shù)組:每個元素位置存儲對象(本質(zhì)是存儲對象的首地址)(在面向?qū)ο蟛糠种v解)

2、按照維度分:

  • 一維數(shù)組:存儲一組數(shù)據(jù)
  • 二維數(shù)組:存儲多組數(shù)據(jù),相當(dāng)于二維表,一行代表一組數(shù)據(jù),只是這里的二維表每一行長度不要求一樣。

2. 一維數(shù)組的使用

2.1 一維數(shù)組的聲明

格式:

//推薦
元素的數(shù)據(jù)類型[] 一維數(shù)組的名稱;

//不推薦
元素的數(shù)據(jù)類型  一維數(shù)組名[];

舉例:

int[] arr;
int arr1[];
double[] arr2;
String[] arr3;  //引用類型變量數(shù)組

數(shù)組的聲明,需要明確:

(1)數(shù)組的維度:在Java中數(shù)組的符號是[],[]表示一維,[][]表示二維。

(2)數(shù)組的元素類型:即創(chuàng)建的數(shù)組容器可以存儲什么數(shù)據(jù)類型的數(shù)據(jù)。元素的類型可以是任意的Java的數(shù)據(jù)類型。例如:int、String、Student等。

(3)數(shù)組名:就是代表某個數(shù)組的標(biāo)識符,數(shù)組名其實也是變量名,按照變量的命名規(guī)范來命名。數(shù)組名是個引用數(shù)據(jù)類型的變量,因為它代表一組數(shù)據(jù)。

舉例:

public class ArrayTest1 {
    public static void main(String[] args) {
        //比如,要存儲一個小組的成績
        int[] scores;
        int grades[];
//        System.out.println(scores);//未初始化不能使用

        //比如,要存儲一組字母
        char[] letters;

        //比如,要存儲一組姓名
        String[] names;

        //比如,要存儲一組價格
        double[] prices;

    }
}

注意:Java語言中聲明數(shù)組時不能指定其長度(數(shù)組中元素的個數(shù))。 例如: int a[5]; //非法

2.2 一維數(shù)組的初始化

2.2.1 靜態(tài)初始化

  • 如果數(shù)組變量的初始化和數(shù)組元素的賦值操作同時進行,那就稱為靜態(tài)初始化。

  • 靜態(tài)初始化,本質(zhì)是用靜態(tài)數(shù)據(jù)(編譯時已知)為數(shù)組初始化。此時數(shù)組的長度由靜態(tài)數(shù)據(jù)的個數(shù)決定。

  • 一維數(shù)組聲明和靜態(tài)初始化格式1:

    數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[]{元素1,元素2,元素3,...};
    
    或
        
    數(shù)據(jù)類型[] 數(shù)組名;
    數(shù)組名 = new 數(shù)據(jù)類型[]{元素1,元素2,元素3,...};
    
    • new:關(guān)鍵字,創(chuàng)建數(shù)組使用的關(guān)鍵字。因為數(shù)組本身是引用數(shù)據(jù)類型,所以要用new創(chuàng)建數(shù)組實體。

例如,定義存儲1,2,3,4,5整數(shù)的數(shù)組容器。

int[] arr = new int[]{1,2,3,4,5};//正確
//或
int[] arr;
arr = new int[]{1,2,3,4,5};//正確
  • 一維數(shù)組聲明和靜態(tài)初始化格式2:
數(shù)據(jù)類型[] 數(shù)組名 = {元素1,元素2,元素3...};//必須在一個語句中完成,不能分成兩個語句寫

例如,定義存儲1,2,3,4,5整數(shù)的數(shù)組容器

int[] arr = {1,2,3,4,5};//正確

int[] arr;
arr = {1,2,3,4,5};//錯誤

舉例:

public class ArrayTest2 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};//右邊不需要寫new int[]

        int[] nums;
        nums = new int[]{10,20,30,40}; //聲明和初始化在兩個語句完成,就不能使用new int[]

        char[] word = {'h','e','l','l','o'};

        String[] heros = {"袁隆平","鄧稼先","錢學(xué)森"};

        System.out.println("arr數(shù)組:" + arr);//arr數(shù)組:[I@1b6d3586
        System.out.println("nums數(shù)組:" + nums);//nums數(shù)組:[I@4554617c
        System.out.println("word數(shù)組:" + word);//word數(shù)組:[C@74a14482
        System.out.println("heros數(shù)組:" + heros);//heros數(shù)組:[Ljava.lang.String;@1540e19d
    }
}

2.2.2 動態(tài)初始化

數(shù)組變量的初始化和數(shù)組元素的賦值操作分開進行,即為動態(tài)初始化。

動態(tài)初始化中,只確定了元素的個數(shù)(即數(shù)組的長度),而元素值此時只是默認(rèn)值,還并未真正賦自己期望的值。真正期望的數(shù)據(jù)需要后續(xù)單獨一個一個賦值。

格式:

數(shù)組存儲的元素的數(shù)據(jù)類型[] 數(shù)組名字 = new 數(shù)組存儲的元素的數(shù)據(jù)類型[長度];

或

數(shù)組存儲的數(shù)據(jù)類型[] 數(shù)組名字;
數(shù)組名字 = new 數(shù)組存儲的數(shù)據(jù)類型[長度];
  • [長度]:數(shù)組的長度,表示數(shù)組容器中可以最多存儲多少個元素。

  • **注意:數(shù)組有定長特性,長度一旦指定,不可更改。**和水杯道理相同,買了一個2升的水杯,總?cè)萘烤褪?升是固定的。

舉例1:正確寫法

int[] arr = new int[5];

int[] arr;
arr = new int[5];

舉例2:錯誤寫法

int[] arr = new int[5]{1,2,3,4,5};//錯誤的,后面有{}指定元素列表,就不需要在[]中指定元素個數(shù)了。

2.3 一維數(shù)組的使用

2.3.1 數(shù)組的長度

  • 數(shù)組的元素總個數(shù),即數(shù)組的長度
  • 每個數(shù)組都有一個屬性length指明它的長度,例如:arr.length 指明數(shù)組arr的長度(即元素個數(shù))
  • 每個數(shù)組都具有長度,而且一旦初始化,其長度就是確定,且是不可變的。

2.3.2 數(shù)組元素的引用

如何表示數(shù)組中的一個元素?

每一個存儲到數(shù)組的元素,都會自動的擁有一個編號,從0開始,這個自動編號稱為數(shù)組索引(index)或下標(biāo),可以通過數(shù)組的索引/下標(biāo)訪問到數(shù)組中的元素。

數(shù)組名[索引/下標(biāo)]

數(shù)組的下標(biāo)范圍?

Java中數(shù)組的下標(biāo)從[0]開始,下標(biāo)范圍是[0, 數(shù)組的長度-1],即[0, 數(shù)組名.length-1]

數(shù)組元素下標(biāo)可以是整型常量或整型表達式。如a[3] , b[i] , c[6*i];

舉例

public class ArrayTest3 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};

        System.out.println("arr數(shù)組的長度:" + arr.length);
        System.out.println("arr數(shù)組的第1個元素:" + arr[0]);//下標(biāo)從0開始
        System.out.println("arr數(shù)組的第2個元素:" + arr[1]);
        System.out.println("arr數(shù)組的第3個元素:" + arr[2]);
        System.out.println("arr數(shù)組的第4個元素:" + arr[3]);
        System.out.println("arr數(shù)組的第5個元素:" + arr[4]);

        //修改第1個元素的值
        //此處arr[0]相當(dāng)于一個int類型的變量
        arr[0] = 100;
        System.out.println("arr數(shù)組的第1個元素:" + arr[0]);
    }
}

2.4 一維數(shù)組的遍歷

將數(shù)組中的每個元素分別獲取出來,就是遍歷。for循環(huán)與數(shù)組的遍歷是絕配。

舉例1

public class ArrayTest4 {
    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3,4,5};
        //打印數(shù)組的屬性,輸出結(jié)果是5
        System.out.println("數(shù)組的長度:" + arr.length);

        //遍歷輸出數(shù)組中的元素
        System.out.println("數(shù)組的元素有:");
        for(int i=0; i<arr.length; i++){
            System.out.println(arr[i]);
        }
    }
}

舉例2

public class ArrayTest5 {
    public static void main(String[] args) {
        int[] arr = new int[5];

        System.out.println("arr數(shù)組的長度:" + arr.length);
        System.out.print("存儲數(shù)據(jù)到arr數(shù)組之前:[");
        for (int i = 0; i < arr.length; i++) {
            if(i==0){
                System.out.print(arr[i]);
            }else{
                System.out.print("," + arr[i]);
            }
        }
        System.out.println("]");

        //初始化
 		/* 
 		arr[0] = 2;
        arr[1] = 4;
        arr[2] = 6;
        arr[3] = 8;
        arr[4] = 10;
        */

        for (int i = 0; i < arr.length; i++) {
            arr[i] = (i+1) * 2;
        }

        System.out.print("存儲數(shù)據(jù)到arr數(shù)組之后:[");
        for (int i = 0; i < arr.length; i++) {
            if(i==0){
                System.out.print(arr[i]);
            }else{
                System.out.print("," + arr[i]);
            }
        }
        System.out.println("]");
    }
}

2.5 數(shù)組元素的默認(rèn)值

數(shù)組是引用類型,當(dāng)我們使用動態(tài)初始化方式創(chuàng)建數(shù)組時,元素值只是默認(rèn)值。例如:

public class ArrayTest6 {
	public static void main(String argv[]){
		int a[]= new int[5]; 
		System.out.println(a[3]); //a[3]的默認(rèn)值為0
	}
} 

對于基本數(shù)據(jù)類型而言,默認(rèn)初始化值各有不同。

對于引用數(shù)據(jù)類型而言,默認(rèn)初始化值為null(注意與0不同!)

public class ArrayTest7 {
    public static void main(String[] args) {
        //存儲26個字母
        char[] letters = new char[26];
        System.out.println("letters數(shù)組的長度:" + letters.length);
        System.out.print("存儲字母到letters數(shù)組之前:[");
        for (int i = 0; i < letters.length; i++) {
            if(i==0){
                System.out.print(letters[i]);
            }else{
                System.out.print("," + letters[i]);
            }
        }
        System.out.println("]");

       //存儲5個姓名
        String[] names = new String[5];
        System.out.println("names數(shù)組的長度:" + names.length);
        System.out.print("存儲姓名到names數(shù)組之前:[");
        for (int i = 0; i < names.length; i++) {
            if(i==0){
                System.out.print(names[i]);
            }else{
                System.out.print("," + names[i]);
            }
        }
        System.out.println("]");
    }
}

3. 多維數(shù)組的使用

3.1 概述

  • Java 語言里提供了支持多維數(shù)組的語法。

  • 如果說可以把一維數(shù)組當(dāng)成幾何中的線性圖形,那么二維數(shù)組就相當(dāng)于是一個表格,像Excel中的表格、圍棋棋盤一樣。

  • 應(yīng)用舉例1:

    某公司2022年全年各個月份的銷售額進行登記。按月份存儲,可以使用一維數(shù)組。如下:

    int[] monthData = new int[]{23,43,22,34,55,65,44,67,45,78,67,66};
    

    如果改寫為按季度為單位存儲怎么辦呢?

    int[][] quarterData = new int[][]{{23,43,22},{34,55,65},{44,67,45},{78,67,66}};
    
    • 應(yīng)用舉例2:

高一年級三個班級均由多個學(xué)生姓名構(gòu)成一個個數(shù)組。如下:

String[] class1 = new String[]{"段譽","令狐沖","任我行"};

String[] class2 = new String[]{"張三豐","周芷若"};

String[] class3 = new String[]{"趙敏","張無忌","韋小寶","楊過"};

藍框的幾個元素,可以使用一維數(shù)組來存儲。但現(xiàn)在發(fā)現(xiàn)每個元素下還有下拉框,其內(nèi)部還有元素,那就需要使用二維數(shù)組來存儲:

  • 使用說明

  • 對于二維數(shù)組的理解,可以看成是一維數(shù)組array1又作為另一個一維數(shù)組array2的元素而存在。
  • 其實,從數(shù)組底層的運行機制來看,其實沒有多維數(shù)組。

3.2 聲明與初始化

3.2.1 聲明

二維數(shù)組聲明的語法格式:

//推薦
元素的數(shù)據(jù)類型[][] 二維數(shù)組的名稱;

//不推薦
元素的數(shù)據(jù)類型  二維數(shù)組名[][];
//不推薦
元素的數(shù)據(jù)類型[]  二維數(shù)組名[];

例如:

public class Test20TwoDimensionalArrayDefine {
    public static void main(String[] args) {
        //存儲多組成績
        int[][] grades;

        //存儲多組姓名
        String[][] names;
    }
}

面試:

int[] x, y[];
//x是一維數(shù)組,y是二維數(shù)組

3.2.2 靜態(tài)初始化

格式:

int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

定義一個名稱為arr的二維數(shù)組,二維數(shù)組中有三個一維數(shù)組

  • 每一個一維數(shù)組中具體元素也都已初始化
    • 第一個一維數(shù)組 arr[0] = {3,8,2};
    • 第二個一維數(shù)組 arr[1] = {2,7};
    • 第三個一維數(shù)組 arr[2] = {9,0,1,6};
  • 第三個一維數(shù)組的長度表示方式:arr[2].length;
  • 注意特殊寫法情況:int[] x,y[]; x是一維數(shù)組,y是二維數(shù)組。
  • 舉例1:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9,10}};//聲明與初始化必須在一句完成

int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int[][] arr;
arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

arr = new int[3][3]{{1,2,3},{4,5,6},{7,8,9,10}};//錯誤,靜態(tài)初始化右邊new 數(shù)據(jù)類型[][]中不能寫數(shù)字
  • 舉例2:
public class TwoDimensionalArrayInitialize {
    public static void main(String[] args) {
        //存儲多組成績
        int[][] grades = {
                    {89,75,99,100},
                    {88,96,78,63,100,86},
                    {56,63,58},
                    {99,66,77,88}
                };

        //存儲多組姓名
        String[][] names = {
            {"張三","李四", "王五", "趙六"},
            {"劉備","關(guān)羽","張飛","諸葛亮","趙云","馬超"},
            {"曹丕","曹植","曹沖"},
            {"孫權(quán)","周瑜","魯肅","黃蓋"}
        };
    }
}

3.2.3 動態(tài)初始化

如果二維數(shù)組的每一個數(shù)據(jù),甚至是每一行的列數(shù),需要后期單獨確定,那么就只能使用動態(tài)初始化方式了。動態(tài)初始化方式分為兩種格式:

格式1:規(guī)則二維表:每一行的列數(shù)是相同的

//(1)確定行數(shù)和列數(shù)
元素的數(shù)據(jù)類型[][] 二維數(shù)組名 = new 元素的數(shù)據(jù)類型[m][n];
	//其中,m:表示這個二維數(shù)組有多少個一維數(shù)組?;蛘哒f一共二維表有幾行
	//其中,n:表示每一個一維數(shù)組的元素有多少個?;蛘哒f每一行共有一個單元格

//此時創(chuàng)建完數(shù)組,行數(shù)、列數(shù)確定,而且元素也都有默認(rèn)值

//(2)再為元素賦新值
二維數(shù)組名[行下標(biāo)][列下標(biāo)] = 值;

舉例:

int[][] arr = new int[3][2];
  • 定義了名稱為arr的二維數(shù)組

  • 二維數(shù)組中有3個一維數(shù)組

  • 每一個一維數(shù)組中有2個元素

  • 一維數(shù)組的名稱分別為arr[0], arr[1], arr[2]

  • 給第一個一維數(shù)組1腳標(biāo)位賦值為78寫法是:arr[0][1] = 78;

格式2:不規(guī)則:每一行的列數(shù)不一樣

//(1)先確定總行數(shù)
元素的數(shù)據(jù)類型[][] 二維數(shù)組名 = new 元素的數(shù)據(jù)類型[總行數(shù)][];

//此時只是確定了總行數(shù),每一行里面現(xiàn)在是null

//(2)再確定每一行的列數(shù),創(chuàng)建每一行的一維數(shù)組
二維數(shù)組名[行下標(biāo)] = new 元素的數(shù)據(jù)類型[該行的總列數(shù)];

//此時已經(jīng)new完的行的元素就有默認(rèn)值了,沒有new的行還是null

//(3)再為元素賦值
二維數(shù)組名[行下標(biāo)][列下標(biāo)] = 值;

舉例:

int[][] arr = new int[3][];
  • 二維數(shù)組中有3個一維數(shù)組。
  • 每個一維數(shù)組都是默認(rèn)初始化值null (注意:區(qū)別于格式1)
  • 可以對這個三個一維數(shù)組分別進行初始化:arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];
  • 注:int[][]arr = new int[][3]; //非法

練習(xí):

/*
 1
 2 2
 3 3 3
 4 4 4 4
 5 5 5 5 5
 */
public class Test25DifferentElementCount {
    public static void main(String[] args){
        //1、聲明一個二維數(shù)組,并且確定行數(shù)
        //因為每一行的列數(shù)不同,這里無法直接確定列數(shù)
        int[][]  arr = new int[5][];

        //2、確定每一行的列數(shù)
        for(int i=0; i<arr.length; i++){
			/*
			arr[0] 的列數(shù)是1
			arr[1] 的列數(shù)是2
			arr[2] 的列數(shù)是3
			arr[3] 的列數(shù)是4
			arr[4] 的列數(shù)是5
			*/
            arr[i] = new int[i+1];
        }

        //3、確定元素的值
        for(int i=0; i<arr.length; i++){
            for(int j=0; j<arr[i].length; j++){
                arr[i][j] = i+1;
            }
        }

        //4、遍歷顯示
        for(int i=0; i<arr.length; i++){
            for(int j=0; j<arr[i].length; j++){
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }

    }
}

3.3 數(shù)組的長度和角標(biāo)

  • 二維數(shù)組的長度/行數(shù):二維數(shù)組名.length
  • 二維數(shù)組的某一行:二維數(shù)組名[行下標(biāo)],此時相當(dāng)于獲取其中一組數(shù)據(jù)。它本質(zhì)上是一個一維數(shù)組。行下標(biāo)的范圍:[0, 二維數(shù)組名.length-1]。此時把二維數(shù)組看成一維數(shù)組的話,元素是行對象。
  • 某一行的列數(shù):二維數(shù)組名[行下標(biāo)].length,因為二維數(shù)組的每一行是一個一維數(shù)組。
  • 某一個元素:二維數(shù)組名[行下標(biāo)][列下標(biāo)],即先確定行/組,再確定列。
public class Test22TwoDimensionalArrayUse {
    public static void main(String[] args){
        //存儲3個小組的學(xué)員的成績,分開存儲,使用二維數(shù)組。
		/*
		int[][] scores1;
		int scores2[][];
		int[] scores3[];*/

        int[][] scores = {
                {85,96,85,75},
                {99,96,74,72,75},
                {52,42,56,75}
        };

        System.out.println(scores);//[[I@15db9742
        System.out.println("一共有" + scores.length +"組成績.");

        //[[:代表二維數(shù)組,I代表元素類型是int
        System.out.println(scores[0]);//[I@6d06d69c
        //[:代表一維數(shù)組,I代表元素類型是int
        System.out.println(scores[1]);//[I@7852e922
        System.out.println(scores[2]);//[I@4e25154f
        //System.out.println(scores[3]);//ArrayIndexOutOfBoundsException: 3

        System.out.println("第1組有" + scores[0].length +"個學(xué)員.");
        System.out.println("第2組有" + scores[1].length +"個學(xué)員.");
        System.out.println("第3組有" + scores[2].length +"個學(xué)員.");

        System.out.println("第1組的每一個學(xué)員成績?nèi)缦拢?);
        //第一行的元素
        System.out.println(scores[0][0]);//85
        System.out.println(scores[0][1]);//96
        System.out.println(scores[0][2]);//85
        System.out.println(scores[0][3]);//75
        //System.out.println(scores[0][4]);//java.lang.ArrayIndexOutOfBoundsException: 4
    }
}

3.4 二維數(shù)組的遍歷

  • 格式:
for(int i=0; i<二維數(shù)組名.length; i++){ //二維數(shù)組對象.length
    for(int j=0; j<二維數(shù)組名[i].length; j++){//二維數(shù)組行對象.length
        System.out.print(二維數(shù)組名[i][j]);
    }
    System.out.println();
}
  • 舉例:
public class Test23TwoDimensionalArrayIterate {
    public static void main(String[] args) {
        //存儲3個小組的學(xué)員的成績,分開存儲,使用二維數(shù)組。
        int[][] scores = {
                {85,96,85,75},
                {99,96,74,72,75},
                {52,42,56,75}
        };

        System.out.println("一共有" + scores.length +"組成績.");
        for (int i = 0; i < scores.length; i++) {
            System.out.print("第" + (i+1) +"組有" + scores[i].length + "個學(xué)員,成績?nèi)缦拢?);
            for (int j = 0; j < scores[i].length; j++) {
                System.out.print(scores[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

4. Arrays工具類的使用

java.util.Arrays類即為操作數(shù)組的工具類,包含了用來操作數(shù)組(比如排序和搜索)的各種方法。 比如:

  • 數(shù)組元素拼接
    • static String toString(int[] a) :字符串表示形式由數(shù)組的元素列表組成,括在方括號(“[]”)中。相鄰元素用字符 ", "(逗號加空格)分隔。形式為:[元素1,元素2,元素3。。。]
    • static String toString(Object[] a) :字符串表示形式由數(shù)組的元素列表組成,括在方括號(“[]”)中。相鄰元素用字符 ", "(逗號加空格)分隔。元素將自動調(diào)用自己從Object繼承的toString方法將對象轉(zhuǎn)為字符串進行拼接,如果沒有重寫,則返回類型@hash值,如果重寫則按重寫返回的字符串進行拼接。
  • 數(shù)組排序
    • static void sort(int[] a) :將a數(shù)組按照從小到大進行排序
    • static void sort(int[] a, int fromIndex, int toIndex) :將a數(shù)組的[fromIndex, toIndex)部分按照升序排列
    • static void sort(Object[] a) :根據(jù)元素的自然順序?qū)χ付▽ο髷?shù)組按升序進行排序。
    • static void sort(T[] a, Comparator<? super T> c) :根據(jù)指定比較器產(chǎn)生的順序?qū)χ付▽ο髷?shù)組進行排序。
  • 數(shù)組元素的二分查找
    • static int binarySearch(int[] a, int key) 、static int binarySearch(Object[] a, Object key) :要求數(shù)組有序,在數(shù)組中查找key是否存在,如果存在返回第一次找到的下標(biāo),不存在返回負(fù)數(shù)。
  • 數(shù)組的復(fù)制
    • static int[] copyOf(int[] original, int newLength) :根據(jù)original原數(shù)組復(fù)制一個長度為newLength的新數(shù)組,并返回新數(shù)組
    • static T[] copyOf(T[] original,int newLength):根據(jù)original原數(shù)組復(fù)制一個長度為newLength的新數(shù)組,并返回新數(shù)組
    • static int[] copyOfRange(int[] original, int from, int to) :復(fù)制original原數(shù)組的[from,to)構(gòu)成新數(shù)組,并返回新數(shù)組
    • static T[] copyOfRange(T[] original,int from,int to):復(fù)制original原數(shù)組的[from,to)構(gòu)成新數(shù)組,并返回新數(shù)組
  • 比較兩個數(shù)組是否相等
    • static boolean equals(int[] a, int[] a2) :比較兩個數(shù)組的長度、元素是否完全相同
    • static boolean equals(Object[] a,Object[] a2):比較兩個數(shù)組的長度、元素是否完全相同
  • 填充數(shù)組
    • static void fill(int[] a, int val) :用val值填充整個a數(shù)組
    • static void fill(Object[] a,Object val):用val對象填充整個a數(shù)組
    • static void fill(int[] a, int fromIndex, int toIndex, int val):將a數(shù)組[fromIndex,toIndex)部分填充為val值
    • static void fill(Object[] a, int fromIndex, int toIndex, Object val) :將a數(shù)組[fromIndex,toIndex)部分填充為val對象

舉例:java.util.Arrays類的sort()方法提供了數(shù)組元素排序功能:

import java.util.Arrays;
public class SortTest {
	public static void main(String[] args) {
		int[] arr = {3, 2, 5, 1, 6};
        System.out.println("排序前" + Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println("排序后" + Arrays.toString(arr));
	}
}

總結(jié) 

到此這篇關(guān)于Java從入門到起飛之?dāng)?shù)組使用的文章就介紹到這了,更多相關(guān)Java數(shù)組詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA初級項目——實現(xiàn)圖書管理系統(tǒng)

    JAVA初級項目——實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要介紹了JAVA如何實現(xiàn)圖書管理系統(tǒng),文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 一文秒懂?kafka?HA(高可用)

    一文秒懂?kafka?HA(高可用)

    這篇文章主要介紹了秒懂?kafka?HA(高可用)的相關(guān)知識,本文我們來說一說和?kafka?高可用相關(guān)的一些策略,對kafka?HA相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • Java8時間api之LocalDate/LocalDateTime的用法詳解

    Java8時間api之LocalDate/LocalDateTime的用法詳解

    在項目中,時間的使用必不可少,而java8之前的時間api?Date和Calander等在使用上存在著很多問題,于是,jdk1.8引進了新的時間api-LocalDateTime,本文就來講講它的具體使用吧
    2023-05-05
  • Java基于NIO實現(xiàn)群聊功能

    Java基于NIO實現(xiàn)群聊功能

    這篇文章主要為大家詳細(xì)介紹了Java基于NIO實現(xiàn)群聊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Springboot通過run啟動web應(yīng)用的方法

    Springboot通過run啟動web應(yīng)用的方法

    這篇文章主要介紹了Springboot通過run啟動web應(yīng)用的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Win10?IDEA如何連接虛擬機中的Hadoop(HDFS)

    Win10?IDEA如何連接虛擬機中的Hadoop(HDFS)

    在虛擬機上配置Hadoop并修改core-site.xml文件,設(shè)置IP為局域網(wǎng)地址,IDEA中創(chuàng)建Maven項目,添加依賴,并檢查Hadoop重啟和端口轉(zhuǎn)發(fā),提供test.bat文件,通過修改IP簡化使用過程
    2024-11-11
  • Java中關(guān)于文件路徑讀取問題的分析

    Java中關(guān)于文件路徑讀取問題的分析

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java中關(guān)于文件路徑讀取問題展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • java使用JSONObject實例

    java使用JSONObject實例

    JAVA中JSONObject對象的使用方法
    2013-11-11
  • 簡單解析execute和submit有什么區(qū)別

    簡單解析execute和submit有什么區(qū)別

    這篇文章主要介紹了簡單解析execute和submit有什么區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • xxl-job 帶參數(shù)執(zhí)行和高可用部署方法

    xxl-job 帶參數(shù)執(zhí)行和高可用部署方法

    這篇文章主要介紹了xxl-job 帶參數(shù)執(zhí)行和高可用部署,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論