1. 程式人生 > >java程式設計入門8 陣列

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