数组对象类 1.数组的元素插入 2.数组的元素的删除 3.数组元素的修改 4.数组元素的查看 5.数组元素的遍历 6.数组元素的长度
package array; public class ArrayUtil { //用于存储整形数据的数组 private int[] elements; //重写构造方法 public ArrayUtil(){ //初始化数组 elements=new int[0]; } /******** 数组插入元素 **************/ /** * 向数组任意位置插入元素 * @param number * @param element * @return */ public int[] add(int number,int element){ //判断插入位置的合理性 if(number < 0 || number >elements.length){ throw new RuntimeException("下标越界"); } //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length+1]; //遍历原数组 for(int i=0;i<elements.length;i++){ //判断插入位置,留出插入位置 if(i<number){ arr[i]=elements[i]; }else { arr[i+1]=elements[i]; } } //插入位置添加元素 arr[number]=element; //新数组赋值给原数组 elements=arr; //返回原数组,数组插入元素完成 return elements; } /** * 向数组头部添加一个元素 * @param element * @return */ public int[] addHead(int element){ //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length+1]; //遍历原数组,将元素组的值通过下标一一赋值给新数组,新数组下标总是大于原数组下标1 for(int i=0;i<elements.length;i++){ arr[i+1]=elements[i]; } //为新数组的第一个索引赋值需要添加的元素 arr[0]=element; //新数组赋值给原数组 elements=arr; //返回原数组,数组头部添加元素完成 return elements; } /** * 向数组末尾添加一个元素 * @param element * @return */ public int[] addEnd(int element){ //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length+1]; //遍历原数组,将元素组的值通过下标一一赋值给新数组 for(int i=0;i<elements.length;i++){ arr[i]=elements[i]; } //为新数组的最后一个索引赋值需要添加的元素 arr[elements.length]=element; //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements; } /******** 数组插入元素END **************/ /******** 数组删除元素 **************/ /** * 删除任意位置的一个元素 * @param number * @return */ public int[] delete(int number){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } //判断删除下标位置的合理性 if(number <0 || number >=elements.length){ throw new RuntimeException("下标越界"); } //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length-1]; if(elements.length == 1){ //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 }else{ //遍历数组 for(int i=0;i<arr.length;i++){ if(i<number){ arr[i]=elements[i]; }else{ arr[i]=elements[i+1]; } } } //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements; } /** * 删除头部第一个元素 * @return */ public int[] deleteHead(){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length-1]; if(elements.length == 1){ //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements; }else{ //遍历新数组,将原数组的值通过下标一一赋值给新数组, for(int i=0;i<arr.length;i++){ arr[i]=elements[i+1]; } //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements; } } /** * 删除末尾的一个元素 * @return */ public int[] deleteEnd(){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } //创建一个新的数组,数组长度是原数组的长度+1 int [] arr=new int[elements.length-1]; if(elements.length == 1){ //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements;}else{ //遍历新数组,将原数组的值通过下标一一赋值给新数组, for(int i=0;i<arr.length;i++){ arr[i]=elements[i]; } //新数组赋值给原数组 elements=arr; //返回原数组,数组末尾添加元素完成 return elements; } } /******** 数组删除元素END **************/ /******** 数组修改元素 **************/ /** * 修改数组任意位置元素 * @param element * @return */ public int[] alter(int number,int element){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } if(number <0 || number >=elements.length){ throw new RuntimeException("下标越界"); } elements[number]=element; //返回原数组,数组末尾添加元素完成 return elements; } /** * 修改头部第一个元素 * @param element * @return */ public int[] alterHead(int element){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } elements[0]=element; //返回原数组,数组末尾添加元素完成 return elements; } /** * 修改尾部最后一个元素 * @param element * @return */ public int[] alterEnd(int element){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } elements[elements.length-1]=element; //返回原数组,数组末尾添加元素完成 return elements; } /******** 数组修改元素END **************/ /******** 数组查询元素 **************/ /** * 查询数组头部第一个元素 * @return */ public int inquireHead(){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } return elements[0]; } /** * 查询数组尾部最后一个元素 * @return */ public int inquireEnd(){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } return elements[elements.length-1]; } /** * 查询数组任意位置元素 * @param number * @return */ public int inquire(int number){ //判断删除的元素是否为空数组 if(elements.length<=0){ throw new RuntimeException("这是一个空数组"); } if(number <0 || number >=elements.length){ throw new RuntimeException("下标越界"); } return elements[number]; } /******** 数组查询元素END **************/ /******** 查寻数组 **************/ public String arrayFor(){ String str="["; if(elements.length ==0){ str+="]"; return str; } for(int i=0;i<elements.length;i++){ str+=elements[i]; if(i!=elements.length-1){ str+=","; } } str+="]"; return str; } /******** 查询数组END **************/ /******** 查询数组长度 **************/ public int arrayLength(){ int l=0; if(elements.length ==0){ return l; } for(int i=0;i<elements.length;i++){ l=i; } return l+1; } /******** 查询数组长度 **************/ }数组对象类之测试类
package array; public class ArrayTest { public static void main(String[] args) { ArrayUtil au=new ArrayUtil(); /************添加元素测试*****************/ //任意位置添加数据(空数组,位置只能是0了) au.add(0, 1); //数组头部添加一个元素 au.addHead(0); //数组尾部添加一个元素 au.addEnd(2); //任意位置添加数据 au.add(3, 3); //数组头部添加一个元素 au.addHead(-1); //数组尾部添加一个元素 au.addEnd(4); //查看添加元素后的数组 System.out.println("查看添加元素后的数组"+au.arrayFor()); //查看数组长度 System.out.println("查看添加元素后的数组的长度"+au.arrayLength()); System.out.println("----------------------------"); /***********添加元素测试END***************/ /***********删除元素测试***************/ //删除任意位置的一个元素 au.delete(3); System.out.println("查看删除任意位置元素后的数组"+au.arrayFor()); //删除头部元素 au.deleteHead(); System.out.println("查看删除头部位置元素后的数组"+au.arrayFor()); //删除尾部元素 au.deleteEnd(); System.out.println("查看删除尾部位置元素后的数组"+au.arrayFor()); //查看数组长度 System.out.println("查看添加元素后的数组的长度"+au.arrayLength()); System.out.println("----------------------------"); /***********删除元素测试END***************/ /***********修改元素测试***************/ //修改任意位置的一个元素 au.alter(1, 200); System.out.println("查看修改任意位置元素后的数组"+au.arrayFor()); //修改头部元素 au.alterHead(100); System.out.println("查看修改头部位置元素后的数组"+au.arrayFor()); //修改尾部元素 au.alterEnd(300); System.out.println("查看修改尾部位置元素后的数组"+au.arrayFor()); //查看数组长度 System.out.println("查看修改元素后的数组的长度"+au.arrayLength()); System.out.println("----------------------------"); /***********修改元素测试END***************/ /***********查询元素测试***************/ //查询任意位置的一个元素 System.out.println("查看任意位置1的元素"+au.inquire(1)); //查询头部元素 System.out.println("查看头部位置元素"+au.inquireHead()); //查询尾部元素 System.out.println("查看尾部位置元素"+au.inquireEnd()); //查看数组长度 System.out.println("查看数组的长度"+au.arrayLength()); System.out.println("----------------------------"); /***********查询元素测试END***************/ } }运行截图
太子压阵
