java程式設計入門8 陣列
陣列概述
1.宣告一維陣列
1)陣列元素型別 陣列名字[];
2)陣列元素型別 [] 陣列名字;
2.為陣列分配記憶體空間
1)陣列名字 = new 陣列元素的型別[陣列元素的個數];
注:使用new關鍵字為陣列分配記憶體時,整型陣列中各個元素的初始值都為0
3.宣告的同時為陣列分配空間
1)陣列元素的型別 [] 陣列名 = new 陣列元素的型別[陣列元素的個數];
2)陣列元素的型別 陣列名 []= new 陣列元素的型別[陣列元素的個數];
4.初始化一維陣列
1)陣列元素的型別 陣列名字[] =new 陣列元素的型別[]{表示式列表};
2)陣列元素的型別 陣列名字[] ={表示式列表};
陣列的基本操作
1.填充陣列元素
使用Arrays類的靜態方法fill()來對陣列中的元素進行填充
1)fill(int[] a,int value) //以int型陣列為例
2)fill(int []a,int fromIndex,int toIndex,int value)
該方法將指定的值分配給從索引fromIndex開始到toIndex(不包括)這一指定範圍中的每個元素、
2.對陣列進行排序
使用Arrays類的靜態方法sort()來對陣列中的元素進行排序
1)通過sort()可以實現對陣列的排序
注:java中的String型別陣列的排序演算法是根據字典編排順序排序的,數字<大寫字母<小寫字母(ASCII)
String [] arr =new String[] {"1abcd","aabcd","Aabcd"}; Arrays.sort(arr); for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); }
3.複製陣列
Arrays類的copyOf()方法與copyOfRange()方法可以實現對陣列的複製
1)copyOf(arr,int new length)
複製陣列至指定長度,如果新陣列的長度大於陣列arr的長度,則用0填充(根據複製陣列的型別來決定填充的值,整型陣列用0填充,char型陣列用null填充)
String [] arr =new String[] {"1abcd","aabcd","Aabcd"}; Arrays.sort(arr); for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); }
2)copyOfRange(arr,int fromIndex,int toIndex)
指定陣列的指定長度複製到一個新陣列中,從fromIndex到toIndex(不包括),fromIndex必須在0~整個陣列的長度之間,toIndex可以大於陣列arr的長度,
int arr[] =new int[] {23,42,12}; int newarr[]= Arrays.copyOfRange(arr,0,5); for(int i=0;i<newarr.length;i++) { System.out.println(newarr[i]); }
4.陣列查詢
Arrays類的binarySearch()方法,可使用二分搜尋法來搜尋指定陣列,已獲得指定物件,返回值為索引位置。
如果key包含在陣列中,則返回搜尋值的索引;否則返回"-"(插入點),插入點是搜尋鍵要插入陣列的那個點,即第一個大於此鍵的元素索引(從1開始計數)。
1)binarySearch(Object[] a,Object key)
注:必須在進行此呼叫前對陣列進行排序,如果沒有對陣列進行排序,則結果是不確定的。如果陣列包含多個帶有指定值的元素,則無法去保證找到的是哪一個。
2)binarySearch(Object[],int fromIndex,int toIndex,Object key)
該方法在指定的範圍內(fromIndex,toIndex-1)檢索某一個元素
int arr[] =new int[] {1,3,5,7,9,11}; int index=Arrays.binarySearch(arr, 4); System.out.println(index);
2018-12-05