1 /** 2 用类封装数组实现数据结构 3 一个数据结构必须具有以下基本功能: 4 5 ①、如何插入一条新的数据项 6 7 ②、如何寻找某一特定的数据项 8 9 ③、如何删除某一特定的数据项 10 11 ④、如何迭代的访问各个数据项,以便进行显示或其他操作 12 */ 13 14 public class MyArray{ 15 //定义一个数组 16 private int[] intArray; 17 //定义数组的实际有效长度 18 private int elems; 19 //定义数组的最大长度 20 private int length; 21 22 //默认构造一个长度为50的数组 23 public MyArray() { 24 elems = 0; 25 length = 50; 26 intArray = new int[length]; 27 } 28 29 //构造函数,初始化一个长度为length的数组 30 public MyArray(int length) { 31 elems = 0; 32 this.length = length; 33 intArray = new int[length]; 34 } 35 36 //获取数组的有效长度 37 public int getSize() { 38 return elems; 39 } 40 41 /** 42 遍历显示元素 43 */ 44 public void display() { 45 for (int i = 0 ; i < elems ; i++ ) { 46 System.out.print(intArray[i]+" "); 47 } 48 System.out.println(); 49 } 50 51 /** 52 添加元素,假设使用者不会添加重复元素,如果有重复元素后面也会受到影响 53 */ 54 public boolean add(int value) { 55 if(elems == length) 56 return false; 57 else { 58 intArray[elems] = value; 59 elems++; 60 } 61 return true; 62 } 63 64 /** 65 根据下标获取元素,查找下标值在数组下标有效范围内,返回下标表示的元素,超过 66 有效值,提示访问下标越界 67 */ 68 69 public int get(int i) { 70 if(i < 0 || i >= elems) 71 System.out.println("访问下标越界"); 72 return intArray[i]; 73 } 74 75 /** 76 查找元素 77 如果查找的元素存在则返回下标值,不存在就返回-1 78 */ 79 public int find(int searchValue) { 80 int i; 81 for(i=0; i < elems; i++) { 82 if(intArray[i] == searchValue) { 83 return i; 84 } 85 86 } 87 return -1; 88 } 89 /** 90 删除元素 91 如果要删除的值不存在,直接返回false;否则返回true,删除成功 92 */ 93 public boolean delete(int value) { 94 int k = find(value); 95 if(k == -1) { 96 return false; 97 } else { 98 if (k == elems -1) { 99 elems--;100 } else {101 for(int i = k; i < elems-1; i++) {102 intArray[i] = intArray[i+1];103 }104 elems--;105 }106 }107 return true;108 }109 110 /**111 * 修改数据,修改成功返回true,失败返回false112 * @param oldValue 原值113 * @param newValue 新值114 */115 public boolean modify(int oldValue,int newValue) {116 int i = find(oldValue);117 if(i == -1) {118 System.out.println("需要修改的数据不存在");119 return false;120 } else {121 intArray[i] = newValue;122 return true;123 }124 }125 }
1 public class MyArrayTest{ 2 public static void main(String[] args) { 3 //创建自定义封装数组结构,数组大小为4 4 MyArray array = new MyArray(4); 5 //添加4个元素分别是1,2,3,4 6 array.add(1); 7 array.add(2); 8 array.add(3); 9 array.add(4);10 //显示数组元素11 array.display();12 //根据下标为0的元素13 int i = array.get(0);14 System.out.println(i);15 //删除4的元素16 array.delete(4);17 //将元素3修改为3318 array.modify(3, 33);19 array.display();20 //删除不存在的元素21 System.out.println(array.delete(100));22 }23 }