Java中对数组的操作
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同。
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 }