
1、聲明數組: 告訴計算機數據類型是什么--數據類型[ ] 數組名 ;??int[] array;?
?
2、分配空間: 告訴計算機分配幾個連續的空間--數據類型[ ] 數組名 = new 數據類型[大小] ;??array = new int[5];?
?
(相關資料圖)
3、賦值:向分配的格空間里放數據??array[0] = 0;?
?
4、處理數據:??array[0] = array[0] + 1;?
?
??int[] arr = new int[5];?
?
??int [] arr = new int[5];?
?
??int arr[] = new int[5];?
?
??int[] arr = new int[]{1,2,3,4,5};//這樣說明數組大小為5?
?
??int[] arr = {1,2,3};?
?
??System.out.println(arr1.length);?
?打印數組長度,為申請空間的長度,不管是否賦值。
動態初始化
數組定義與為數組元素分配空間并賦值的操作分開進行int a[] = null;a = new int[3];a[0] = 3;a[1] = 2;a[2] = 1;
靜態初始化
除了用new關鍵字來產生數組以外,還可以直接在定義數組的同時就為數組元素分配空間并賦值。格式: 類型 [] 數組名 = {元素1, 元素2 ......};默認初始化
數組是引用類型,它的元素相當于類的實例變量,因此數組一經分配空間,其中的每個元素也被按照實例變量同樣的方式被隱式初始化。
int: 0boolean:falseString:null數組元素下標從0開始;長度為n的數組合法下標取值范圍: 0 ~ n-1;
因為數組相當于是數據結構的一種,很多數據經常要使用數組.因此需要了解:
某種排序算法冒泡排序選擇排序插入排序快速排序排序算法的時間復雜度,空間復雜度:衡量一個數據結構是否合適的衡量標準排序算法的穩定性:排序之后的值跟排序之前的值位置是否發生變化冒泡排序
public static void bubbleSort(int array[]) { int t = 0; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { t = array[j]; array[j] = array[j + 1]; array[j + 1] = t; } } }}
選擇排序
public static void selectionSort(int[] array) { for (int i = 0; i < array.length; i++) { int index = i; for (int j = i; j < array.length; j++) { if (array[j] < array[index]) index = j; } int temp = array[index]; array[index] = array[i]; array[i] = temp; } }
插入排序
public static void insertionSort(int[] array) { int current; for (int i = 0; i < array.length - 1; i++) { current = array[i + 1]; int preIndex = i; while (preIndex >= 0 && current < array[preIndex]) { array[preIndex + 1] = array[preIndex]; preIndex--; } array[preIndex + 1] = current; } }
快速排序
public static int[] QuickSort(int[] array, int start, int end) { if (array.length < 1 || start < 0 || end >= array.length || start > end) return null; int smallIndex = partition(array, start, end); if (smallIndex > start) QuickSort(array, start, smallIndex - 1); if (smallIndex < end) QuickSort(array, smallIndex + 1, end); return array; } public static int partition(int[] array, int start, int end) { int pivot = (int) (start + Math.random() * (end - start + 1)); int smallIndex = start - 1; swap(array, pivot, end); for (int i = start; i <= end; i++) if (array[i] <= array[end]) { smallIndex++; if (i > smallIndex) swap(array, i, smallIndex); } return smallIndex; } public static void swap(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; }
public class TwoArray{ public static void main(String[] args) { int[] arr = new int[6]; int[][] arr2 = new int[3][]; //創建二維數組的對象 arr2[0] = new int[5]; arr2[1] = new int[3]; arr2[2] = new int[4]; //賦值 arr2[0][0] = 1; arr2[0][1] = 2; arr2[0][2] = 3; arr2[0][3] = 4; arr2[0][4] = 5; arr2[1][0] = 6; arr2[1][1] = 7; arr2[1][2] = 8; arr2[2][0] = 9; arr2[2][1] = 10; arr2[2][2] = 11; arr2[2][3] = 12; for(int i = 0;i注意
1.二維數組舉例:
?
?int [][] a = {{1,2},{3,4,0,9},{5,6,7}};?
?Java中多維數組不必須是規則矩陣形式,例如
int[] arr = new int[6];int[][] arr2 = new int[3][];//創建二維數組的對象arr2[0] = new int[2];arr2[1] = new int[4];arr2[2] = new int[3];2.二維數組可以看成以數組為元素的數組
Java中多維數組的聲明和初始化應按從高維到低維的順序進行,例如:
3.二維數組的初始化
動態初始化??int [ ][ ] arr=new int [4][3]; ?
?也可以理解為“4行3例”靜態初始化數據類型 [ ][ ] 數組名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}…};舉例:??int [ ][ ] arr={{1,2,3},{1,3,4,5},{1,5,6,7,9}};?
?注意??int [][]arr=new int[3][]; 正確?
???int [][]arr=new int[][3]; 錯誤?
?二維數組可以不定義列數,但必須定義行數。因為每行的列數可能不一樣,所以這類數組的實現方法為:先創建制定行數,列數缺省的二維數組,然后對數組的每一行重新初始化int [][]arr=new int[3][];arr[0]=new int[7];arr[1]=new int[4];arr[2]=new int[5];