前言
數組是Java的重要知識點,本文的內容有:
- 數組簡介
- 數組的定義
- 數組的初始化
- foreach循環
- Arrays工具
- 二維數組的使用
數組簡介
為什么需要數組
問題:假設我們需要開發一個學生管理系統,如何保存我們班40個同學的名字?定義40個變量
String name1 = “zhangsan”;
...
String name40 = “lisi”;
如果有100個、1000個同學呢?變量只能保存一個數據,不適合大量數據的存儲。可以使用數組保存多個數據。
什么是數組


類似超市外面的儲物柜
- 可以保存大量的物品
- 每個格子大小是相等的
- 每個格子依次排序,相鄰的
- 格子是通過編號進行訪問
數組的概念
- 數組是在內存中一段連續的存儲空間
- 數組中每個數據的類型都是相同的
- 數組中的數據是通過下標訪問的
數組分類
數組分為:
- 一維數組,一排連續的存儲空間


- 二維數組,可以看做多行多列的結構可以看做是一維數組的嵌套,每一個數組是一個一維數組


定義數組
創建數組時,同時定義數組的長度。
類型[] 數組名 = new 類型[長度];int[] array = new int[5];
[]也可以在數組名的后面
類型 數組名[] = new 類型[長度];int array[] = new int[5];
也可以先聲明數組,然后定義長度。
類型[] 數組名;數組名 = new 類型[長度];
注意:創建數組后,數據會有默認值:int默認是0,float默認是0.0f,double默認是0.0,String默認是null
數組的內存分配情況
- 基本數據類型是直接保存數據值
- 引用數據類型是保存數據的內存地址

數組的初始化
數組的初始化就是給數組元素進行賦值兩種初始化:
- 靜態初始化在定義數組的同時,給數組的數據賦值
數據類型[] 數組名 = {值1,值2,值3...};
如:int[] array = {20,44,33,100,55};
數據類型[] 數組名 = new int[]{值1,值2,值3...};
如:int[] array = new int[]{20,44,33,100,55};
注意:靜態初始化就不能定義長度,數組的長度是由值的個數決定。
- 動態初始化定義數組后,使用循環給數組賦值
int[] array = new int[5];
for(int i = 0;i < array.length;i++){
array[i] = i;
}
數組通過 數組名[下標] 訪問數據,注意:
- 下標從0開始
- 如果下標不在0到數組長度-1范圍內,就會出現ArrayIndexOutOfBoundsException 異常
練習:定義長度為5的字符串數組,對數據進行動態初始化,然后輸出:數組第一個、最后一個、中間字符串的值。
增強型的for循環
foreach循環是在jdk1.5后支持的語法,用于遍歷數組或集合,語法:
for(數據類型 變量名 : 數組名){
訪問變量的值
}
注意:此種for循環只能訪問,不能修改數組中的數據如果需要修改,就需要使用常規for循環。
練習:定義一個5個長度的字符串數組,并給數組進行靜態初始化使用foreach循環,輸出數組元素
二維數組
什么是二維數組可以理解成行和列構成表格結構,可以看做是一維數組中嵌套了一維數組
二維數組的創建
數據類型[][] 數組名 = new 數據類型[行數][列數];
如:int[][] array = new int[3][5];
二維數組的訪問
數組名[行下標][列下標];
如:訪問上面數組第二行第三個元素,array[1][2];
二維數組初始化靜態初始化
數據類型[][] 數組名 = {{值,值,值...},{值,值,值...},{值,值,值...}..};
數據類型[][] 數組名 = new 數據類型[][]{{值,值,值...},{值,值,值...},{值,值,值...}..};
動態初始化
int[][] array = new int[3][5];
for(int i = 0;i < array.length;i++){
for(int j = 0;j < array[i].length;j++){
array[i][j] = i * j;
}
}
Arrays工具類
Arrays類封裝了很多和數組有關方法,可以提高開發效率常用方法:
- 排序
Arrays.sort(數組名)
- 查找
int Arrays.binarySearch(數組名,要找的數) 獲得的結果是要找數字的下標
- 復制
Arrays.copyOf(被復制的數組名,新的數組的長度) 獲得的結果是新數組
- 填充
Arrays.fill(數組名,要填充的數);給數組填充相同的值
- 比較
Arrays.equals(數組名1, 數組名2)返回兩個數組值是否相同
結束
本文結束了,不知道大家掌握了沒有,留作業檢查一下:
1、定義長度為5的整型數組,同時給5個初始值,循環輸出數組中的值。
2、給定一個含有5個元素的整型數組a,求a中所有元素的和。
3、定義數組,輸入5個人姓名保存在數組中,輸出第一個、第三個和第五個人姓名。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。