1 package com.oracle.demo01; 2 3 public class MyArray { 4 //定义一个数组 5 private int [] intArray; 6 //定义数组的实际有效长度 7 private int elems; 8 //定义数组的最大长度 9 private int length; 10 11 //默认构造一个长度为50的数组 12 public MyArray(){ 13 elems = 0; 14 length = 50; 15 intArray = new int[length]; 16 } 17 //构造函数,初始化一个长度为length 的数组 18 public MyArray(int length){ 19 elems = 0; 20 this.length = length; 21 intArray = new int[length]; 22 } 23 24 //获取数组的有效长度 25 public int getSize(){ 26 return elems; 27 } 28 29 /** 30 * 遍历显示元素 31 */ 32 public void display(){ 33 for(int i = 0 ; i < elems ; i++){ 34 System.out.print(intArray[i]+" "); 35 } 36 System.out.println(); 37 } 38 39 /** 40 * 添加元素 41 * @param value,假设操作人是不会添加重复元素的,如果有重复元素对于后面的操作都会有影响。 42 * @return添加成功返回true,添加的元素超过范围了返回false 43 */ 44 public boolean add(int value){ 45 if(elems == length){ 46 return false; 47 }else{ 48 intArray[elems] = value; 49 elems++; 50 } 51 return true; 52 } 53 54 /** 55 * 根据下标获取元素 56 * @param i 57 * @return查找下标值在数组下标有效范围内,返回下标所表示的元素 58 * 查找下标超出数组下标有效值,提示访问下标越界 59 */ 60 public int get(int i){ 61 if(i<0 || i>elems){ 62 System.out.println("访问下标越界"); 63 } 64 return intArray[i]; 65 } 66 /** 67 * 查找元素 68 * @param searchValue 69 * @return查找的元素如果存在则返回下标值,如果不存在,返回 -1 70 */ 71 public int find(int searchValue){ 72 int i ; 73 for(i = 0 ; i < elems ;i++){ 74 if(intArray[i] == searchValue){ 75 break; 76 } 77 } 78 if(i == elems){ 79 return -1; 80 } 81 return i; 82 } 83 /** 84 * 删除元素 85 * @param value 86 * @return如果要删除的值不存在,直接返回 false;否则返回true,删除成功 87 */ 88 public boolean delete(int value){ 89 int k = find(value); 90 if(k == -1){ 91 return false; 92 }else{ 93 if(k == elems-1){ 94 elems--; 95 }else{ 96 for(int i = k; i< elems-1 ; i++){ 97 intArray[i] = intArray[i+1]; 98 99 } 100 elems--; 101 } 102 return true; 103 } 104 } 105 /** 106 * 修改数据 107 * @param oldValue原值 108 * @param newValue新值 109 * @return修改成功返回true,修改失败返回false 110 */ 111 public boolean modify(int oldValue,int newValue){ 112 int i = find(oldValue); 113 if(i == -1){ 114 System.out.println("需要修改的数据不存在"); 115 return false; 116 }else{ 117 intArray[i] = newValue; 118 return true; 119 } 120 } 121 122 }