①、如何插入一条新的数据项
②、如何寻找某一特定的数据项
③、如何删除某一特定的数据项
④、如何迭代的访问各个数据项,以便进行显示或其他操作
而我们知道了数组的简单用法,现在用类的思想封装一个数组,实现上面的四个基本功能:
ps:假设操作人是不会添加重复元素的,这里没有考虑重复元素,如果添加重复元素了,后面的查找,删除,修改等操作只会对第一次出现的元素有效。
package Array; public class MyArray { //定义一个数组 private int [] intArray; //定义数组的实际长度 private int elems; //定义数组的最大长度 private int length; //默认构造一个长度为100的数组 public MyArray(){ elems = 0; length = 100; intArray = new int[length]; } //构造函数,初始化一个长度为length的数组 public MyArray(int length){ elems = 0; this.length = length; intArray = new int[length]; } //获得数组的有效长度 public int getSize(){ return elems; } //遍历显示元素 public void display(){ for(int i = 0; i < elems; i++){ System.out.print(intArray[i]); } System.out.println(); } //添加元素 public boolean add(int value){ if(elems == length){ return false; }else{ intArray[elems] = value; elems++; } return true; } //根据下标获取元素 public int get(int i){ if(i<0 || i>elems-1){ System.out.println("访问下标越界"); return -1; } else{ return intArray[i]; } } //查找元素 public int find(int searchValue){ int i; for(i = 0; i < elems; i++){ if(intArray[i] == searchValue){ break; } } if(i == elems){ return -1; } return i; } //删除元素 public boolean delete(int value){ int k = find(value); if(-1 == k){ System.out.println("要删除的数不存在"); }else{ if(k == elems-1){ elems--; }else{ for(int i = k; i<elems-1; i++){ intArray[i] = intArray[i+1]; } elems--; } } return true; } //修改数据 public boolean modify(int oldValue,int newValue){ int k = find(oldValue); if(-1 == k){ System.out.println("要修改的数不存在"); return false; }else{ intArray[k] = newValue; } return true; } }