數(shù)組的定義
- 數(shù)組是相同類型數(shù)據(jù)的有序集合
- 數(shù)組描述的是相同類型的若干個數(shù)據(jù),按照一定的先后次序排列組合而成
- 其中,每一個數(shù)據(jù)稱作一個數(shù)組元素,每個數(shù)組元素可以通過一個下標(biāo)來訪問它們。
數(shù)組的聲明和創(chuàng)建
首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語法:
1
2
3
|
dataType[] arrayRefVar; //首選方法 或 dataType arrayRefVar[]; |
Java語言使用new操作符來創(chuàng)建數(shù)組,語法如下:
1
|
dataType[] arrayRefVar = new dataType[arraySize]; |
數(shù)組的元素是通過索引訪問的,數(shù)組索引從0開始。
獲取數(shù)組長度:arrays.length
數(shù)組的創(chuàng)建的初始化方式:
1.動態(tài)初始化
1
2
3
|
int [] a = new int [ 5 ]; int [ 0 ] = 1 ; int [ 1 ] = 2 ; int [ 2 ] = 3 ; int [ 3 ] = 4 ; int [ 4 ] = 5 ; |
2.靜態(tài)初始化
1
2
3
|
int [] b = new int []{ 1 , 2 , 3 , 4 , 5 }; int [] c = { 1 , 2 , 3 , 4 , 5 }; |
3.數(shù)組的默認(rèn)初始化
數(shù)組引用類型,它的元素相當(dāng)于類的實例變量,因此數(shù)組一經(jīng)分配空間,其中的每個元素也被按照實例變量同樣的方式被隱式初始化。
數(shù)組的四個基本特點
- 其長度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就是不可以改變的。
- 其元素必須是相同類型,不允許出現(xiàn)混合類型
- 數(shù)組中的元素可以是任何數(shù)據(jù)類型,包括基本類型和引用類型
- 數(shù)組變量屬引用類型,數(shù)組也可以看成是對象,數(shù)組中每個元素相當(dāng)于該對象的成員變量。數(shù)組本身就是對象,Java中對象是在堆中的,因此數(shù)組無論保存原始類型還是其他對象類型,數(shù)組對象本身就在堆中。
數(shù)組邊界
下標(biāo)合法區(qū)間:[0,length-1],如果越界就會報錯;
ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界異常
小結(jié)
- 數(shù)組是相同數(shù)據(jù)類型(數(shù)據(jù)類型可以為任意類型)的有序集合
- 數(shù)組也是對象。數(shù)組元素相當(dāng)于對象的成員變量
- 數(shù)組長度的是確定的,不可變的。如果越界就會報錯:ArrayIndexOutOfBoundsException
數(shù)組的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package com.cnblogs; /* * 本類用于測試數(shù)組01 遍歷數(shù)組 */ public class TestArr1 { public static void main(String[] args) { int [] arr = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }; //遍歷數(shù)組 for ( int i = 0 ; i < arr.length ; i++) { System.out.print(arr[i] + " " ); } System.out.println(); System.out.println( "=============================" ); //利用增強for循環(huán)遍歷數(shù)組 for ( int x : arr) { System.out.print(x + " " ); } System.out.println(); System.out.println( "=============================" ); //使用自己定義的遍歷數(shù)組方法 printArr(arr); } //定義一個遍歷數(shù)組的方法 public static void printArr( int [] arr) { for ( int i = 0 ; i < arr.length ; i++) { System.out.print(arr[i] + " " ); } } } |
多維數(shù)組
- 多維數(shù)組可以看成是數(shù)組的數(shù)組,比如二維數(shù)組就是一個特殊的數(shù)組,其每一個元素都是一個一維數(shù)組。
- 二維數(shù)組
1
|
int [][] a = new int [ 2 ][ 5 ] //兩行,五列 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.cnblogs; /* * 本類用于測試數(shù)組01 遍歷二維數(shù)組 */ public class TestArr2 { public static void main(String[] args) { int [][] arr = {{ 1 , 2 },{ 2 , 3 },{ 3 , 4 },{ 4 , 5 }}; for ( int i = 0 ; i < arr.length ; i++) { for ( int j = 0 ; j < arr[i].length ; j++) { System.out.print(arr[i][j] + " " ); } System.out.println(); } } } |
Arrays類
- 數(shù)組工具類java.util.Arrays
- 由于數(shù)組對象本身并沒有什么方法可以供我們調(diào)用,但API中提供了一個工具類Arrays供我們使用,從而可以對數(shù)據(jù)對象進(jìn)行一些基本操作
- 查看JDK幫助文檔
- Arrays類中的方法都是static修飾的靜態(tài)方法,在使用的時候可以直接使用類名進(jìn)行調(diào)用,而“不用”使用對象來調(diào)用(是“不用”而不是“不能”)
-
具有以下常用功能
- 給數(shù)組賦值:通過fill方法
- 對數(shù)組排序:通過sort方法,按升序
- 比較數(shù)組:通過equals方法比較數(shù)組中元素是否相等
- 查找數(shù)組元素:通過binarySearch方法能對排序好的數(shù)組進(jìn)行二分查找法操作
-
把數(shù)組賦值成一個指定長度的新數(shù)組:通過 Arrays.copyOf(數(shù)組,新的長度)方法
- 新數(shù)組的長度 大于 原數(shù)組, 相當(dāng)于復(fù)制,并增加位置
- 新數(shù)組的長度 小于 原數(shù)組, 相當(dāng)于截取一部分?jǐn)?shù)據(jù)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.cnblogs; /* * 本類用于測試數(shù)組03 Arrays類 */ //導(dǎo)入Arrays類 import java.util.Arrays; public class TestArr3 { public static void main(String[] args) { int [] arr = { 1 , 2 , 3 , 4 , 5 , 6 , 28 , 15 , 13 , 9 }; System.out.println(arr); //[I@3fb6a447 這里打印的是內(nèi)存地址 //打印數(shù)組元素 System.out.println(Arrays.toString(arr)); //[1, 2, 3, 4, 5, 6, 28, 15, 13, 9] //數(shù)組進(jìn)行排序,升序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //[1, 2, 3, 4, 5, 6, 9, 13, 15, 28] //數(shù)組的填充 Arrays.fill(arr, 6 ); System.out.println(Arrays.toString(arr)); //[6, 6, 6, 6, 6, 6, 6, 6, 6, 6] Arrays.fill(arr, 2 , 4 , 8 ); //填充2-4 包括2 不包括4 System.out.println(Arrays.toString(arr)); //[6, 6, 8, 8, 6, 6, 6, 6, 6, 6] } } |
總結(jié)
本篇文章就到這里了,希望能夠幫到您,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://www.cnblogs.com/fangweicheng666/p/14966864.html