1. 程式人生 > >java入門到精通(05)

java入門到精通(05)

    /**
     * 陣列是具有相同資料型別的一組資料的集合
     */
    //一維陣列
    //一維陣列實質上是一組相同型別資料的集合,但需要再程式中處理一組資料或者傳遞一組資料時,
    //可以使用這種型別的陣列
    //建立一維陣列
    陣列元素型別 陣列名字[];
    陣列元素型別[]      陣列名字;
    int arr[];
    String[] atr;
    //宣告陣列後,還不能訪問他的任何元素,因為宣告陣列僅僅是給出呢陣列名字和元素的資料型別,要想真正的使用陣列
    //還要為器分配記憶體空間,且分配的記憶體空間必須知名陣列的長度,分配記憶體空間的方式:
陣列名字 = new 陣列元素型別[陣列元素的個數] arr=new int[5]; //需要注意的是,陣列的下標是從0開始的 //建立陣列的同時分配空間 陣列的元素型別 陣列名[]=new 陣列元素型別[陣列元素的個數] int num[]=new int[12]; //初始化一維陣列 int arr[]=new int[] {1,2,3,4};//第一種初始化方法 int arr2[]= {1,2,3,4};//第二種初始化方法 //多維陣列 //二維陣列常用來表示表.表中的資訊以行和列的形式組織,第一個下標代表所在的行,第二個下標
//元素表示所在的列 //建立二維陣列 陣列元素型別 陣列名字[][]; 陣列元素型別[][] 陣列名字; int marry[][]; //為每一維分配相同的記憶體 marry=new int[2][3]; //初始化 byte arraybyte[][]= {{1,2},{3,4}}; //陣列的基本操作

 

//基本操作
遍歷陣列
陣列的遍歷一般使用for迴圈,一維陣列單層迴圈,二層陣列二層迴圈
當然,在遍歷陣列的時候foreach語句會更加簡單
int arr={{},{}}
for(int
arrs[]:arr){ for (int arrss: arrs){ //迴圈完成 } } //填充替換陣列元素 陣列中的元素定義完成後,可通過Arrays類的靜態方法fill()來對陣列中的元素進行替換 該方法通過過載的形式可完成對任意型別的陣列元素的替換 fill() 方法有兩種引數型別 fill(int a[],int value) a:要進行元素替換的陣列 value:要儲存陣列中所有元素的值 例: int arr[] =new int[5] //建立int型陣列 Arrays.fill(arr,8)//使用8來進行填充arr陣列 //替換制定範圍內的元素 fill(int a[],int fromIndex,int toindex,int value) a:要進行填充的陣列 fromIndex:要使用指定值填充的第一個元素的索引(包括) toindex:要使用指定值填充的的最後一個元素的索引(不包括) value:要儲存在陣列中元素中的值 //對陣列進行排序 通過Arrays類的靜態方法sort()方法來實現對陣列的排序,sort()方法提供了多種排序方式,可以對任意型別的陣列進行排序 Arrays.sort(object) object:指定進行排序的陣列名稱 /** Java中的String型別陣列的排序演算法是根據字典編排順序排序的,因此數字排在字母面前,大寫字母排在小寫字母前面 **/ //複製陣列 Arrays類的copyOf()方法與copyOfRange()方法可以實行對陣列的複製。copyOf()方法是複製陣列至指定的長度, copyOfRange()方法則將指定陣列的指定長度複製到一個新的陣列 1.copyOf() copyOf(arr,int newLength) arr:要進行復制的陣列 newLength:int型常量,指複製後新陣列的長度。 如果:新的陣列長度大於arr的長度,則多餘的長度用0填充 新的長度小於arr的長度,則從arr中擷取新的長度 2.copyOfRange() copyOfRange(arr,int formIndex,int toIndex) arr:要進行復制的陣列物件 formIndex:指定開始複製陣列的索引位置,formIndex必須在0至整個整數的長度之間,新陣列包括索引是formIndex的元素 toIndex:要複製範圍的最後的索引位置,可大於陣列arr的長度,新陣列不包括索引toindex的元素 //陣列查詢 Arrays類的binarySearch()方法,可使用二分搜尋法來搜尋指定陣列,以獲得指定物件,該方法返回要搜尋元素的索引值。 binarySearch()方法提供了多種過載形式,用於滿足各種型別陣列的查詢需要 1.binarySeach(object[] a,Object Key) a:要搜尋的陣列 key:要搜尋的值 如果key包含在陣列中,則返回搜尋值的索引;否則返回-1或“-”(插入點) 2.binarySearch(object[] a,int formIndex,int toIndex,Object key) a:要進行索引的陣列 fromindex:指定範圍的開始處索引(包括) toindex:指定範圍的結束處索引(不包含) key:要搜尋的元素 如果key包含在陣列中,則返回搜尋值的索引;否則返回-1或“-”(插入點) //氣泡排序 氣泡排序是常用的陣列排序演算法之一,它排序陣列元素的過程總是將小數往前放,大數往後放, 類似水中旗袍往上升的動作,所以稱為氣泡排序
//直接選擇排序
直接選擇排序是選擇排序的一種,它的排序速度比氣泡排序快一點,也是常用的排序演算法。
1.基本思想
選擇排序的基本思想,是將制定排序位置與其他陣列元素分別進行比較。如果滿足條件就交換元素值,注意這裡區別於氣泡排序,不是交換相鄰元素,二十八滿足條件的元素與指定的 排序位置進行交換(如從最後一個元素開始排序),這樣排序好的位置逐漸擴大,最後將整個陣列都已經成為排序好的格式
 
 

 

 
 

 

//反轉排序
反轉排序就是以相反的順序把原有的內容及進行重新排序,反轉排序演算法在程式開發中也經常用到
1。基本思想
反轉排序的基本思想比較簡單,也很好理解,其實現思路就是把陣列的最後一個元素與第一個元素替換,倒數第二個元素與第二個元素進行替換,以此類推,知道把陣列完全反轉替換