永不服輸的Java之路---重學Java (第五章)

如若文章中出現衝突,或者出現錯誤,請聯繫 QQ:2669157689 指出我的問題。謝謝~
本章講一下數組。

JAVA編程基礎 —— 數組

1. 一維數組
  1. 數組的基本概念
  • 數組可以看成是多個相同類型數據的組合,實現對這些數據的統
    一管理
    • 舉例:
      • {1,2,3,4,5}
      • {“apple”,“pear”,“banana”,“grape”}.
  • 數組中的每一個數據 — 數組的一個元素(element)
    • 數組中的元素可以是任何數據類型,包括基本數據類型和引用
      類型
  • 數組中元素的個數,稱爲數組的長度(length)
    • JAVA語言中聲明數組時不能指定其長度
      • 舉例: int a[5]; //非法
  1. 一維數組的聲明
  • 一維數組的聲明
    • 數組類型 數組名 [ ]
    • 數組類型[ ] 數組名
  • 示例:
int a[];
int[] b;
double d[];
char[] ch;
Student stu[];
  1. 一維數組的創建
  • 一維數組的創建
    • 數組名 = new 數據元素類型[ 元素個數 ]
  • 示例:
int a[];
a = new int[5];

int a[] = new int[5];
  • 創建後的內存情況
    內存情況
  1. 數組的內存模型
  • 數組是存儲多個相同類型變量的對象
  • 數組的所有元素保存在堆內存中
  • 創建一個數組就是在堆中創建一個數組對象
  • 數組創建後立即擁有默認值
  • 索引從0開始
  • 連續分配
  1. 數組的初始化
  • 初始化
    • 在創建數組的同時就爲數組元素分配空間並賦值
    • 數組類型 數組名[ ] = {元素1,元素2,…}
    • 數組類型 數組名[ ] = new 數據類型[ ]{元素1,元素2,…}
    • int a[ ] = {1,2,3,4,5} ;
    • int a[ ] = new int[]{1,2,3,4,5} ;
  1. 數組元素的訪問
  • 數組元素的訪問
    • Java中,數組元素額下標從0開始
    • 元素額下標可以是整型常量或者整型表達式
    • 數組名[元素下標] = 元素值;
    • 示例:
int a[];
a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
  1. 數組的長度屬性
  • 數組的長度(length)必須>=0;
  • length爲只讀。
  • 利用length遍歷數組
  1. 數組的異常
  • 數組中的常見錯誤
    數組越界異常 (ArrayIndexOutOfBoundsException)
  • 示例

class Array_exception2 {
	
	public static void main(String args[]) {
		
		int a[] = new int[3];
		a[0] = 1;
		a[1] = 2;
		a[2] = 3;
		a[3] = 4;
		System.out.println(a[3]);
	}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at Array_exception2.main(Array_exception2.java:10)

2. 多維數組

  1. 多維數組的概念
  • Java中沒有真正的多維數組,只有數組的數組
  • Java中多維數組不一定是規則矩陣形式,例如:鋸齒數組
  1. 多維數組的聲明
  • 二維數組的聲明
    • 數組類型 數組名 [ ] [ ]
    • 數組類型[ ] [ ] 數組名
    • 數組類型[ ] 數組名 [ ]
    • 示例:
int a[] [];
int[][] b;
int[] c[];
  • 二維數組的創建
    • 數組名 = new 數據元素類型[ 行數 ] [ 列數 ]
    • 數組名 = new 數據元素類型[ 行數 ] [ ]
    • 必須聲明行的個數
    • 示例:
a = new int [3][4];
a = new int [3][];
a = new int [][4]; //非法
  • 二維數組的初始化
    • 數組類型 數組名[ ][ ] = { {元素11,元素12,…} , {元素21,元素22,… } }
    • 數組類型 數組名[ ][ ] = new 數據類型[ ][ ] { {元素11,元素12,…} , {元素21,… } }
    • 示例:
int a[][] = {{1, 2, 3}, {4, 5}, {7}};
int a[][] = new int[][]{{1, 2, 3}, {4, 5}, {7}};
int[][] a = new int[3][];
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[4];
a[0][0] = 1;
a[0][1] = 2;
  • 二維數組在內存中的表示
    • 示例:int a[ ][ ] = {{1, 2, 3}, {4, 5}, {7}};
      內存表示

3. 數組的操作

  1. 數組的遍歷
    利用循環語句和數組下標
  2. 數組的複製 — System.arraycopy( )
    System.arraycopy(source,srcPos,dest,destPos,length)
  • 複製source數組中從下標srcPos開始的length個元素到目標數組dest,
    並從目標數組的下標爲destPos的位置開始儲存
    • source: 源數組
    • srcPos: 源數組中的起始位置
    • dest: 目標數組
    • destPos:目標數組中的起始位置
    • length: 要複製的數組元素的個數
  1. 數組的排序— java.util.Arrays.sort( )
  • Arrays.sort(arr_name)
  • Arrays.sort(arr_name,fromIndex,toIndex)
  • 對數組arr_name中,從下標爲 fromIndex 到 toIndex 的元素(不包括
    toIndex)進行升序排序

下一章內容的理解就要稍微難一點了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章