Java從入門到起飛之?dāng)?shù)組使用詳解
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),文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06Java8時間api之LocalDate/LocalDateTime的用法詳解
在項目中,時間的使用必不可少,而java8之前的時間api?Date和Calander等在使用上存在著很多問題,于是,jdk1.8引進了新的時間api-LocalDateTime,本文就來講講它的具體使用吧2023-05-05Springboot通過run啟動web應(yīng)用的方法
這篇文章主要介紹了Springboot通過run啟動web應(yīng)用的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03Win10?IDEA如何連接虛擬機中的Hadoop(HDFS)
在虛擬機上配置Hadoop并修改core-site.xml文件,設(shè)置IP為局域網(wǎng)地址,IDEA中創(chuàng)建Maven項目,添加依賴,并檢查Hadoop重啟和端口轉(zhuǎn)發(fā),提供test.bat文件,通過修改IP簡化使用過程2024-11-11xxl-job 帶參數(shù)執(zhí)行和高可用部署方法
這篇文章主要介紹了xxl-job 帶參數(shù)執(zhí)行和高可用部署,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04