數組對於每一門編程語言來說都是重要的數據結構之一,當然不同語言對於數組的實現及處理也不盡相同。
Java語言中提供的數組是用來存儲固定大小的同類型元素。如:聲明一個數組變量,numbers[100]來代替直接聲明100個獨立變量number0,number1,...,number99。本文將介紹Java中對於數組的一些簡單操作及應用。
1、數組的擴容
1 /** 2 * 數組的擴容:本質上是先定義一個更大的數組,然后將原數組里面的元素原封不動的拷貝到新數組中 3 * @param arr:要擴容的數組 4 * @return:返回擴容后的新數組 5 */ 6 public static String[] extendRange(String[] arr) { 7 //使原數組擴容為原來的2倍 8 String[] strArr = new String[arr.length*2]; 9 System.arraycopy(arr, 0, strArr, 0, arr.length); 10 return strArr; 11 }
2、數組的查找
1 /** 2 * 數組的查找:在給定的數組中查找出指定的元素 3 * @param arr:要查找的數組 4 * @param index:要查找的元素 5 * @return:若找到,則返回數組中元素所在的索引,若沒有找到則返回-1 6 */ 7 public static int searchElement(String[] arr,String str) { 8 //遍歷數組,將數組中的元素與要查找的元素進行一一比對 9 for(int i=0;i<arr.length;i++) { 10 if(arr[i]==str) { 11 return i; 12 } 13 } 14 return -1; 15 }
3、元素的插入
1 /** 2 * 元素的插入:在給定的數組中的特定位置插入指定的元素 3 * 注意:在測試此方法前,應先保證數組索引不會出現越界異常,可先調用extendRange(String[] arr)進行數組擴容 4 * @param arr:給定的數組 5 * @param index:要插入的元素索引 6 * @param str:要插入的元素 7 * @return:返回插入后的數組 8 */ 9 public static String[] insertElement(String[] arr,int index,String str) { 10 //先找到數組中索引為index的位置 11 int equalsIndex = -1; //記錄數組中索引為index的位置 12 for(int i=0;i<arr.length;i++) { 13 if(i==index) { 14 equalsIndex = i; 15 break; 16 } 17 } 18 //找到了 19 if(equalsIndex!=-1) { 20 //將index索引所在元素及之后的所有元素往后移動一個位置,再在index索引所在位置插入指定元素 21 for(int i=arr.length-2;i>=equalsIndex;i--) { 22 arr[i+1]=arr[i]; 23 } 24 arr[equalsIndex]=str; 25 }else { 26 //沒有找到 27 System.out.println("對不起,您輸入的數組索引不存在!"); 28 } 29 return arr; 30 }
4、元素的修改
1 /** 2 * 元素的修改:將數組中指定的元素修改為給定的元素 3 * @param arr:給定的數組 4 * @param strOld:要修改的元素 5 * @param strNew:修改后的元素 6 * @return:返回修改后的數組 7 */ 8 public static String[] modifyElement(String[] arr,String strOld,String strNew) { 9 //調用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引 10 int index = searchElement(arr,strOld); 11 //找到啦 12 if(index!=-1) { 13 arr[index] = strNew; 14 }else { 15 //沒找到 16 System.out.println("對不起,您要修改的元素不存在!"); 17 } 18 return arr; 19 }
5、元素的刪除
1 /** 2 * 元素的刪除:將數組中指定的元素刪除 3 * @param arr:給定的數組 4 * @param str:要刪除的元素 5 * @return:返回刪除后的數組 6 */ 7 public static String[] deleteElement(String[] arr,String str) { 8 //調用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引 9 int index = searchElement(arr, str); 10 //找到啦 11 if(index!=-1) { 12 //將index所在及以后索引的元素依次前移一位 13 for(int i=index;i<arr.length-1;i++) { 14 arr[i]=arr[i+1]; 15 } 16 //將最后一位置為空 17 arr[arr.length-1]=null; 18 }else { 19 //沒找到 20 System.out.println("對不起,您刪除的元素不存在!"); 21 } 22 return arr; 23 }