您好,登錄后才能下訂單哦!
今天小編給大家分享一下Java入門數(shù)組實(shí)例分析的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
數(shù)組的定義
數(shù)組是相同類型數(shù)據(jù)的有序集合。數(shù)組描述的是相同類型的若干個(gè)數(shù)據(jù),按照一定的先后次序排列組合而成。其中,每一個(gè)數(shù)據(jù)稱作一個(gè)元素,每個(gè)元素可以通過一個(gè)索引(下標(biāo))來訪問它們。
數(shù)組的四個(gè)基本特點(diǎn)
長度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就是不可以改變的。
其元素的類型必須是相同類型,不允許出現(xiàn)混合類型。
數(shù)組類型可以是任何數(shù)據(jù)類型,包括基本類型和引用類型。
數(shù)組有索引的:索引從0開始,到 數(shù)組.length-1
結(jié)束
數(shù)組變量屬于引用類型,數(shù)組也是對象。
PS:數(shù)組變量屬于引用類型,數(shù)組也是對象,數(shù)組中的每個(gè)元素相當(dāng)于該對象的成員變量。數(shù)組本身就是對象,Java中對象是在堆中的,因此數(shù)組無論保存原始類型還是其他對象類型,數(shù)組對象本身是在堆中存儲的。
數(shù)組下標(biāo)從0開始
arr[0] == 12
arr[1] == 6
arr[2] == 27
…
arr[5] == 43
數(shù)組的初始化方式總共有三種:默認(rèn)初始化、靜態(tài)初始化、動態(tài)初始化。
數(shù)組是引用類型,它的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化。
int[] arr = new int[3]; //數(shù)組有默認(rèn)的初始化值
基本數(shù)據(jù)類型數(shù)組的默認(rèn)值:
byte[] : 0
short[] : 0
cahr[] : ‘\u0000’
int[] : 0
long[] : 0
float[] : 0.0
double[] : 0.0
boolean[] : false
引用數(shù)據(jù)類型數(shù)組的默認(rèn)值:null
除了用new關(guān)鍵字來產(chǎn)生數(shù)組以外,還可以直接在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值。
int[] arr = {12,23,45}; int[] arr = new int[]{12,23,45};
數(shù)組定義與為數(shù)組元素分配空間并賦值的操作分開進(jìn)行。
int[] arr ; arr = new int[3] arr[0] = 12; arr[1] = 23; arr[2] = 45;
兩種方法
public class TestCode04 { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3, 4, 5}; int[] arr2 = {5, 4, 3, 2, 1}; //方式1,使用普通for循環(huán) //arr1.length獲取數(shù)組長度的方法 for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i] + " "); } System.out.println(); //方式2,使用增強(qiáng)for循環(huán) for (int a : arr2) { System.out.print(a + " "); } } }
問題:給定一個(gè)數(shù)組int[] arr = {3,5,6,17,26,9,0,7};
,求出數(shù)組中最大的數(shù)
public class TestCode05 { public static void main(String[] args) { int[] arr={3,5,6,17,26,9,0,7}; int max=arr[0];//假設(shè)最大元素為數(shù)組arr[0]位置上的數(shù) //然后依次向后比較 for(int i=1;i<arr.length;i++){ //因?yàn)閙ax=arr[0];可以從arr[1]位置開始比較 if(arr[i]>max){ max=arr[i]; } } System.out.println(max); } }
查詢指定位置元素
給定一個(gè)數(shù)組,查詢索引位置為2上的元素
public class TestCode06 { public static void main(String[] args) { int[] arr={3,5,6,17,26,9,0,7}; //直接輸出arr[2]; System.out.println(arr[2]); //輸出-->6 } }
上面代碼體現(xiàn)了數(shù)組的一個(gè)優(yōu)點(diǎn):在按照位置查詢的時(shí)候,直接一步到位,效率非常高
查詢指定元素的位置–>找出元素對應(yīng)的索引
public class TestCode07{ public static void main(String[] args){ //查詢指定元素的位置-->找出元素對應(yīng)的索引 //給定一個(gè)數(shù)組: int[] arr = {12,34,56,7,3,56}; // 0 1 2 3 4 5 //功能:查詢元素12對應(yīng)的索引: int index = -1; //這個(gè)初始值只要不是數(shù)組的索引即可 for(int i=0;i<arr.length;i++){ if(arr[i]==12){ index = i;//只要找到了元素,那么index就變成為i break;//只要找到這個(gè)元素,循環(huán)就停止 } } if(index!=-1){ System.out.println("元素對應(yīng)的索引:"+index); }else{//index==-1 System.out.println("查無此數(shù)!"); } } }
為了方便我們對數(shù)組進(jìn)行操作,系統(tǒng)提供一個(gè)類Arrays,我們將它當(dāng)做工具類來使用。
下面通過代碼演示Arrays類中常用的方法:
Arrays.toString(arr);//對數(shù)組進(jìn)行遍歷查看,返回的是一個(gè)字符串
Arrays.sort(arr);//對數(shù)組進(jìn)行排序 -->升序
Arrays.copyOf(arr,index);//對數(shù)組的復(fù)制
Arrays.copyOfRange(arr,startindex,endindex);//區(qū)間復(fù)制
Arrays.equals(arr1,arr2);//比較兩個(gè)數(shù)組的值是否一樣
Arrays.fill(arr,1);//數(shù)組填充
import java.util.Arrays; public class TestCode08{ public static void main(String[] args){ //給定一個(gè)數(shù)組: int[] arr = {1,3,7,2,4,8}; //toString:對數(shù)組進(jìn)行遍歷查看的,返回的是一個(gè)字符串 System.out.println(Arrays.toString(arr)); //binarySearch:二分法查找:找出指定數(shù)組中的指定元素對應(yīng)的索引: //這個(gè)方法的使用前提:一定要查看的是一個(gè)有序的數(shù)組: //sort:排序 -->升序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); System.out.println(Arrays.binarySearch(arr,4)); int[] arr2 = {1,3,7,2,4,8}; //copyOf:完成數(shù)組的復(fù)制: int[] newArr = Arrays.copyOf(arr2,4); System.out.println(Arrays.toString(newArr)); //copyOfRange:區(qū)間復(fù)制: int[] newArr2 = Arrays.copyOfRange(arr2,1,4);//[1,4)-->1,2,3位置 System.out.println(Arrays.toString(newArr2)); //equals:比較兩個(gè)數(shù)組的值是否一樣: int[] arr3 = {1,3,7,2,4,8}; int[] arr4 = {1,3,7,2,4,8}; System.out.println(Arrays.equals(arr3,arr4));//true System.out.println(arr3==arr4);//false ==比較左右兩側(cè)的值是否相等,比較的是左右的地址值,返回結(jié)果一定是false //fill:數(shù)組的填充: int[] arr5 = {1,3,7,2,4,8}; Arrays.fill(arr5,10); System.out.println(Arrays.toString(arr5)); } }
本質(zhì)上全部都是一維數(shù)組
靜態(tài)初始化
int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}}; int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
動態(tài)初始化
int[][] arr = new int[3][]; //本質(zhì)上定義了一維數(shù)組長度為3,每個(gè)“格子”中放入的是一個(gè)數(shù)組 arr[0] = new int[]{1,2}; arr[1] = new int[]{3,4,5,6}; arr[2] = new int[]{34,45,56};
默認(rèn)初始化
數(shù)組是引用類型,它的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化。
int[][] arr=new int[3][3];//定義一個(gè)3*3的二維數(shù)組,默認(rèn)值為0
兩個(gè)for循環(huán)
for (int i = 0; i < arr.length; i++) { for (int j = 0; i < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println();//換行 } }
以上就是“Java入門數(shù)組實(shí)例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。