通常,陣列是具有連續記憶體位置的類似型別的元素的集合。Java陣列是一個包含類似資料型別的元素的物件。 它是一個資料結構,我們儲存類似的元素。 只能在java陣列中儲存固定的元素集合。
java中的陣列是基於索引的,陣列的第一個元素儲存的索引為:0
。
Java Array的優點
程式碼優化: 它使程式碼優化,可以輕鬆地檢索或排序資料。
隨機存取: 可以獲取任何位於任何索引位置的資料。
Java Array的缺點
大小限制: 只能在陣列中儲存固定大小的元素。 它在執行時不會增長其大小。 為了解決這個問題,在java中使用了集合框架。
java中的陣列型別
有兩種型別的陣列。
java中的單維陣列
在java中宣告一個陣列的語法。
dataType[] arr; (or)
dataType []arr; (or)
dataType arr[];
在java中範例化陣列
arrayRefVar=new datatype[size];
一維java陣列的範例
讓我們來看看java陣列的簡單例子,下面宣告,範例化,初始化和遍歷陣列。
class Testarray {
public static void main(String args[]) {
int a[] = new int[5];// declaration and instantiation
a[0] = 10;// initialization
a[1] = 20;
a[2] = 70;
a[3] = 40;
a[4] = 50;
// printing array
for (int i = 0; i < a.length; i++)// length is the property of array
System.out.println(a[i]);
}
}
執行上面程式碼的得到下面的結果 -
10
20
70
40
50
Java陣列的宣告,範例化和初始化
可以通過以下方式宣告,範例化和初始化java陣列:
int a[]={33,3,4,5};//declaration, instantiation and initialization
讓我們來看看列印陣列的簡單例子。
class Testarray1 {
public static void main(String args[]) {
int a[] = { 33, 3, 4, 5 };// declaration, instantiation and
// initialization
// printing array
for (int i = 0; i < a.length; i++)// length is the property of array
System.out.println(a[i]);
}
}
執行上面程式碼,得到以下結果 -
33
3
4
5
在Java中將陣列傳遞給方法
我們可以將java陣列傳遞給方法,以便可以在陣列上重複使用相同的邏輯。
讓我們來看看獲取使用方法的陣列的最小數的一個簡單的例子。
class Testarray2 {
static void min(int arr[]) {
int min = arr[0];
for (int i = 1; i < arr.length; i++)
if (min > arr[i])
min = arr[i];
System.out.println(min);
}
public static void main(String args[]) {
int a[] = { 33, 3, 4, 5 };
min(a);// passing array to method
}
}
執行上面程式碼,得到以下結果 -
3
java中的多維陣列
在這種情況下,資料儲存在基於行和列的索引(也稱為矩陣形式)中。在Java中宣告多維陣列的語法。
dataType[][] arrayRefVar; (or)
dataType [][]arrayRefVar; (or)
dataType arrayRefVar[][]; (or)
dataType []arrayRefVar[];
在java中範例化多維陣列的範例
int[][] arr=new int[3][3];//3 row and 3 column
在java中初始化多維陣列的範例
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1][0]=4;
arr[1][1]=5;
arr[1][2]=6;
arr[2][0]=7;
arr[2][1]=8;
arr[2][2]=9;
多維java陣列範例
讓我們來看看一個簡單的例子來宣告,範例化,初始化並列印二維陣列。
class Testarray3 {
public static void main(String args[]) {
// declaring and initializing 2D array
int arr[][] = { { 1, 2, 3 }, { 2, 4, 5 }, { 4, 4, 5 } };
// printing 2D array
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
執行上面程式碼,得到以下結果 -
1 2 3
2 4 5
4 4 5
java陣列的類名是什麼?
在java中,陣列是一個物件。 對於陣列物件,建立一個代理類,其名稱可以通過物件上的getClass()
。getName()
方法獲取。
class Testarray4 {
public static void main(String args[]) {
int arr[] = { 4, 4, 5 };
Class c = arr.getClass();
String name = c.getName();
System.out.println(name);
}
}
執行上面程式碼,得到以下程式碼 -
I
複製java陣列
可以通過System
類的arraycopy
方法將陣列複製到另一個陣列。
arraycopy方法的語法
public static void arraycopy(
Object src, int srcPos,Object dest, int destPos, int length
)
arraycopy方法的範例
class TestArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' };
char[] copyTo = new char[7];
System.arraycopy(copyFrom, 2, copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
執行上面程式碼,得到以下程式碼 -
caffein
在java中新增2個矩陣
讓我們來看看一個簡單的例子,新增兩個矩陣。
class Testarray5 {
public static void main(String args[]) {
// creating two matrices
int a[][] = { { 1, 3, 4 }, { 3, 4, 5 } };
int b[][] = { { 1, 3, 4 }, { 3, 4, 5 } };
// creating another matrix to store the sum of two matrices
int c[][] = new int[2][3];
// adding and printing addition of 2 matrices
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
c[i][j] = a[i][j] + b[i][j];
System.out.print(c[i][j] + " ");
}
System.out.println();// new line
}
}
}
執行上面程式碼,得到以下程式碼 -
2 6 8
6 8 10