數組,就是相同數據類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區分他們的變量的集合,這個名字稱為數組名,編號稱為下標。
組成數組的各個變量稱為數組的分量,也稱為數組的元素,有時也稱為下標變量。
數組是在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數據元素的集合稱為數組。
| |目錄
1初始化數組
動態初始化
1
2
3
4
5
6
7
8
|
int
[] array =
new
int
[
3
];
// 兩種方式都可以
// int array[] = new int[3];
array[
0
] =
1
;
array[
1
] =
2
;
array[
2
] =
3
;
System.out.println(array[
0
]);
|
靜態初始化
1
2
3
4
5
|
int
[] array = {
1
,
2
,
3
,
4
};
int
[] array1 =
new
int
[] {
1
,
2
,
3
,
4
};
System.out.println(array[
2
]);
System.out.println(array1[
2
]);
|
默認初始化
1
2
|
int
[] array =
new
int
[
4
];
System.out.println(array[
2
]);
|
2獲取數組的長度
1
2
3
|
int
[] array =
new
int
[
10
];
int
length = array.length;
System.out.println(
"數組array的長度是:"
+ length);
|
3二維數組
二維數組初始化
同一維數組一樣,共有4總不同形式的定義方法:
1
2
3
4
|
int
[][] array1 =
new
int
[
10
][
10
];
int
array2[][] =
new
int
[
10
][
10
];
int
array3[][] = { {
1
,
1
,
1
}, {
2
,
2
,
2
} };
int
array4[][] =
new
int
[][] { {
1
,
1
,
1
}, {
2
,
2
,
2
} };
|
不定長二維數組
1
2
3
4
|
int
[][] array =
new
int
[
3
][];
array[
0
] =
new
int
[
1
];
array[
1
] =
new
int
[
2
];
array[
2
] =
new
int
[
3
];
|
獲取二維數組的長度
1
2
3
4
5
6
|
int
length1 = array.length;
int
length2 = array[
0
].length;
// 獲取二維數組的第一維長度(3)
System.out.println(length1);
// 獲取二維數組的第一維的第一個數組長度(1)
System.out.println(length2);
|
4數組遍歷
傳統方式遍歷
1
2
3
4
|
int
[] array =
new
int
[] {
1
,
2
,
3
};
for
(
int
i =
0
; i < array.length; i++) {
System.out.println(
"array["
+ i +
"] = "
+ array[i]);
}
|
增強for循環方式遍歷
1
2
3
4
|
int
[] array =
new
int
[] {
1
,
2
,
3
};
for
(
int
i : array) {
System.out.println(i);
}
|
5數組排序
1
2
3
|
int
[] array = {
3
,
2
,
1
,
4
,
5
};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
|
另:常用的排序方法有冒泡排序、快速排序、選擇排序、插入排序、希爾(Shell)排序、堆排序。可參考Java 數組排序
6數組的復制、插入和合並
7實用API
輸出數組
1
2
|
int
[] array = {
1
,
2
,
3
};
System.out.println(Arrays.toString(array));
|
數組轉List
1
2
3
|
String[] array = {
"a"
,
"b"
,
"c"
,
"d"
,
"e"
};
List<String> list =
new
ArrayList<String>(Arrays.asList(array));
System.out.println(list);
|
數組轉Set
1
2
3
|
String[] array = {
"a"
,
"b"
,
"c"
,
"d"
,
"e"
};
Set<String> set =
new
HashSet<String>(Arrays.asList(array));
System.out.println(set);
|
List轉數組
1
2
3
4
5
6
7
8
|
List<String> list =
new
ArrayList<String>();
list.add(
"a"
);
list.add(
"b"
);
list.add(
"c"
);
String[] array =
new
String[list.size()];
list.toArray(array);
for
(String s : array)
System.out.println(s);
|
數組中是否包含某個值
1
2
3
|
String[] array = {
"a"
,
"b"
,
"c"
,
"d"
,
"e"
};
boolean
b = Arrays.asList(array).contains(
"a"
);
System.out.println(b);
|
數組合並
1
2
3
4
|
int
[] array1 = {
1
,
2
,
3
,
4
,
5
};
int
[] array2 = {
6
,
7
,
8
,
9
,
10
};
int
[] array = org.apache.commons.lang.ArrayUtils.addAll(array1, array2);
System.out.println(Arrays.toString(array));
|
String數組轉字符串(使用指定字符拼接)
1
2
3
|
String[] array = {
"a"
,
"b"
,
"c"
};
String str = org.apache.commons.lang.StringUtils.join(array,
", "
);
System.out.println(str);
|
數組逆序
1
2
3
|
int
[] array = {
1
,
2
,
3
,
4
,
5
};
org.apache.commons.lang.ArrayUtils.reverse(array);
System.out.println(Arrays.toString(array));
|
數組元素移除
1
2
3
|
int
[] array = {
1
,
2
,
3
,
4
,
5
};
int
[] removed = org.apache.commons.lang.ArrayUtils.removeElement(array,
3
);
System.out.println(Arrays.toString(removed));
|
8數組異常
1. 數組下標越界異常,java.lang.ArrayIndexOutOfBoundsException
在java中,數組下標從0開始,我們定義了一個長度為3的數組,想要從中取出第四位,便會拋出此異常。
1
2
|
int
[] array =
new
int
[] {
1
,
2
,
3
};
System.out.println(array[
3
]);
|