第5章 數組java
5.1 數組的定義數組
• 數組是固定的不能擴展ide
• 能夠存儲基本數據類型或對象或接口對象
• 經過數組名和下標能夠訪問各元素,下標從0開始排序
5.2 聲明數組索引
• 數組的聲明包括數組名和所包含的元素類型接口
• 聲明方法: 數組類型 數組名[ ]; 或 數組類型[ ] 數組名; 內存
例如 int age[ ]; 或 int [ ] age; 均可以。it
5.3 建立數組class
• 利用new 來爲數組型變量分配內存空間
• 數組名=new 數組元素類型[元素個數];
例如 age=new int[10];
必須分配內存後才能使用數組
兩步能夠合併,如:int age[ ]=new int[10];
5.4 數組初始化
數組的初始化:用new建立或直接靜態初始化
• 一維數組:int a[]=new int[5]; // 定義並初始化
int a[]; a=new int[5]; // 先聲明後初始化
int a[]={1,2,3,4}; // 靜態初始化
int size=5; int a[]=new int[size];//在上面通用的基礎上,用變量定義數組的長度。
int a[]=new int[5]; // 此時系統爲數組a中的每個元素都初始化爲0;
double d[]=new double[5];// 此時系統爲數組d中的每個元素都初始化爲0.0;
String s[]=newString[5];// s[i]=null, (0<=i<=4); s.length=5
• 多維數組:Java中多維數組的聲明和初始化應按從高維到低維(即從左到右)的順序進行;
必須指定高層維數,不能在空維後定義數組維!
錯誤示例:int a[][][]=new int[][][]; // 高層維數未指定
int a[][][]=new int[1][][4]; //不能在空維後定義數組維
int a[][][]=new int [][][4];
正確示例:int a[][][]=new int[1][][];
int a[][][]=new int[1][4][];
int a[][][]=new int[1][4][5];
總結:定義數組時,第一維必須定義!且要從高維開始定義,空維後不能定義;
二維數組的初始化:
• 在Java語言中,因爲把二維數組看做是數組的數組,數組空間不是連續分配的,因此不要求二維數組每一維的大小相同。
• 靜態初始化 int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
• 動態初始化(難點、很重要)
int a[ ][ ] = new int[2][ ];
a[0] = new int[3];
a[1] = new int[5];
5.5 數組元素的使用
經過下標訪問數組元素,而不能只經過數組名訪問整個數組。
注意:二維數組中:數組名.length返回的是數組的行數。數組名[行號].length返回的是該行的列數。
每一個數組都有一個屬性length指明數組的長度,例如arr.length指明數組arr的長度。注意length是屬性不是方法!
5.6 數組的方法
數組複製
循環賦值
System.arraycopy(src,srcPos, dest, destPos, length);
System.arraycopy(原始數組, 起始索引, 目標數組, 起始索引, 複製長度);
注意:複製的長度不要超過目標串的長度。不然會發生異常。
數組拷貝示例:
public class Test {
public static void main(String[] args) {
int arrInt1[]={12,34,5,1,45};
int arrInt2[]=new int[6];
System.arraycopy(arrInt1,0, arrInt2, 1, 5);
for (int i = 0; i < arrInt2.length; i++) {
System.out.print(arrInt2[i]+" ");
}
}
}
輸出結果爲:0 12 34 5 1 45
在java.util.Arrays包中:數組填充Arrays.fill( )
當咱們配置一個數組以後,其會依數據型態來給定默認值,例如整數數組就初始爲0,您能夠使用Arrays.fill()方法來將全部的元素設定爲指定的值。
在java.util.Arrays包中:數組比較Arrays.equals( ):
比較兩個數組中的元素值是否所有相等,若是是將傳回true,不然傳回false。
在java.util.Arrays包中:數組排序Arrays.sort(數組名):
這個方法能夠對指定的數組排序,所使用的是快速排序法。