Java - 數組
阿新 • • 發佈:2017-11-19
基本類型 拷貝 div 數組 空間 ati 常見算法 進行 exceptio 主要內容:
* 一維數組的聲明和初始化。
* 數組元素的引用。
* 二維數組的聲明和使用。
* 數組拷貝。
數組概述:
* 數組可以看成是多個相同類型數據的組合,對這些數據的統一管理。
* 數組變量屬於引用數據類型,數組也可以看成是對象,數組中的每個元素相當於該對象的成員變量。
* 數組中的元素可以是任何數據類型,包括基本類型和引用類型。
數組初始化:
* 動態初始化:也就說數組定義與為數組元素分配空間和賦值的操作分開進行,例如:( int[] a; a = new int[3]; a[0] = 3; a[1] = 9; a[2] = 8; )。
* 靜態初始化:也就說在定義數組的同時就為數組元素分配空間並賦值,例如:( int[] a = {3, 9, 8}; )。
數組元素的初始化:
* 因為數組變量本身屬於引用數據類型變量,即 new 出來的東西也存在 heap 中,故數組元素的初始化與成員變量的初始化規則一樣(即:基礎數據類型自動初始化,引用數據類型為 null,需要實例化。)
二維數組:
* 二維數組可以看成以數組為元素的數組。例:int[][] a = { { 1, 2 }, { 3, 4, 5, 6 }, { 7, 8, 9 } };
* Java 中多維數組的聲明和初始化應按從高維到低維(也就是從左到右)的順序進行,例如:
int[][] a = new int[ 3 ][];
a[ 0 ] = new int[ 3 ];
a[ 1 ] = new int[ 4 ];
a[ 2 ] = new int[ 3 ];
int[][] t = new int[][ 4 ];//這是非法的
數組的拷貝:
* 使用 java.lang.System 類的靜態方法:
public static void arraycopy( Object src, int srcPos, Object dest, int destPos, int length )
解釋:可以用於數組 src 從第 srcPos 下標項元素開始的 length 個元素拷貝到 dest 數組中從 destPos 下標元素開始的 length 個位置。
註意:拷貝時,如果超過了目標數組 dest 的邊界,則會拋出 IndexOutOfBoundsException 異常。(也就說首先必須滿足條件:length <= dest.length & length <= dest.length - destPos)
總結:
* 數組的內存布局
* 常見算法
** 排序
*** 選擇
*** 冒泡
** 查找(註:必須是在排好序的基礎上才能進行查找算法)
*** 折半(二分)
Java - 數組