數組基本知識整理
數組是一種數據結構,用來存儲同一類型值得集合。創建一個數字數組時,所有元素都初始化爲0。Boolean類型數組的元素會初始化爲false。對象數組的元素則初始化爲一個特殊值null,這表示這些元素還未被放任何對象。
一旦創建了數組,就不能再改變它的大小(可以改變每一個數組元素)。如果經常需要在運行過程中擴展數組的大小,就需要使用另一種數據結構-集合。
一維數組
1、 一維數組的聲明
a、 一維數組的聲明方式
type var[]; 或type[] var;
b、 例如:
inta1[];int[] a2;
double b[];
Person[] p1;
String s1[];
c、 Java語言中聲明數組時不能指定其長度(數組元素的個數),例如:
int a[5]; //錯誤的方式
2、 數組對象的創建
Java中使用關鍵字new創建數組對象,格式:
數組名 = 數組元素的類型[數組元素的個數];
例如:
public staticvoidmain(String[] args){
int a[];
a = newint[5];
for (inti = 0; i < a.length; i++) {
a[i] =i;
}
//常規for循環
for (intj = 0; j < a.length; j++) {
System.out.print(a[j] +" ");
}
System.out.println();
//foreach使用
for (inti : a) {
System.out.print(i +" ");
}
System.out.println();
//Arrays類的toString方法:返回一個包含數組元素的字符串
System.out.println(Arrays.toString(a));
}
3、 元素爲引用數據類型的數組
元素爲引用數據類型的數組中每個元素都需要實例化。
public class ShuZuTest2 {
public staticvoidmain(String[] args){
Date date[] = new Date[3];
for (inti = 0; i < date.length; i++) {
date[i] =newDate(2016, 11, i+1);
}
for (inti = 0; i < date.length; i++) {
System.out.println(date[i].year+"年"+date[i].month+"月"+date[i].day+"日");
}
}
}
class Date{
int year,month,day;
Date(int y, intm,int d){
year = y;
month = m;
day = d;
}
}
4、 數組的初始化
(1) 動態初始化
數組定義與數組元素的分配空間和賦值操作分開進行,例如:
int a[]; //數組的定義
a = newint[3]; //數組元素分配空間
a[0] = 2; //數組元素的複製操作
a[1] = 1;
a[2] = 4;
(2) 靜態初始化
在定義數組的同時就爲數組元素分配空間並賦值。例如:
int[] a = {1,2,3};
Date[] date = {new Date(2011,8,1),
new Date(2011,9,1),
new Date(2011,10,2)}
(3) 數組元素的默認初始化
數組元素是引用類型,它的元素相當於類的成員變量,因此數組分配空間後,每個元素也按照成員變量的規則被隱式初始化。Int類型系統默認爲0;引用類型系統默認爲null。
二維數組
1、 二維數組
數組的數組。
int a[][] = {{1,2},{1,2,3,4},{2,3,4}};
int a[][] =new int[3][];
a[0]= newint[2];
a[1]= newint[3];
a[2]= newint[4];
2、 二維數組的初始化
a、 靜態初始化
數組的定義、數組元素的分配空間以及數組的復賦值操作同時進行。
int a[][] = {{1,2}, {1,2,3}, {2,4,6,7}};
int a[2][3] = {{1,2,3}, {3,4,5}}; //非法
b、 動態初始化
數組定義與數組元素的分配空間和賦值操作分開進行。
Arrays類
1、數組排序:sort方法。按照升序排序。
2、toString方法:利用Arrays類的toString方法,打印數組中的所有值。
3、數組拷貝:copyOf方法、copyOfRange()。
4、數組比較:equals()方法。