本文共 2524 字,大约阅读时间需要 8 分钟。
class MyArrayList {
public int[] elem;public int usedSize;public MyArrayList() {this.elem = new int[5];this.usedSize = 0;}// 打印顺序表 public void display() { for (int i = 0; i < this.usedSize; i++) { System.out.print(this.elem[i] + " "); } System.out.println(); } // 在pos位置新增一个元素 public void add(int pos, int data) { if (pos < 0 || pos > this.usedSize) { System.out.println("不合法!"); return; } if (this.usedSize == this.elem.length) { this.elem = Arrays.copyOf(this.elem, 2 * this.elem.length); } for (int i = this.usedSize - 1; i >= pos; i--) { this.elem[i + 1] = this.elem[i]; } this.elem[pos] = data; this.usedSize++; } // 判定是否包含某个元素 public boolean contains(int toFind) { for (int i = 0; i < this.usedSize; i++) { if (this.elem[i] == toFind) { return true; } } return false; } // 查找某个元素对应的位置 public int search(int toFind) { for (int i = 0; i < this.usedSize; i++) { if (this.elem[i] == toFind) { return i; } } return -1; } // 获取pos位置的元素 public int getPos(int pos) { if (pos < 0 || pos >= this.usedSize) { return -1; } return this.elem[pos]; } // 给pos位置设为value public void setPos(int pos, int value) { if (pos < 0 || pos >= this.usedSize) { return; } this.elem[pos] = value; } // 删除第一次出现的关键字key public void remove(int toRemove) { int j = search(toRemove); if (j == -1) { System.out.println("没有该数字"); return; } for (int i = j; i < this.usedSize - 1; i++) { this.elem[i] = this.elem[i + 1]; } this.usedSize--; } // 获取顺序表长度 public int size() { return this.usedSize; } // 清空顺序表 public void clear() { this.usedSize = 0; } }
public class Test {
public static void main(String[] args) {MyArrayList myArrayList = new MyArrayList();// 新增myArrayList.add(0, 1);myArrayList.add(1, 2);myArrayList.add(2, 3);myArrayList.add(3, 4);myArrayList.add(4, 5);myArrayList.add(5, 6);myArrayList.display();// 判断是否包含某个元素System.out.println(myArrayList.contains(3));// 查找某个元素对应的位置System.out.println(myArrayList.search(3));// 获取pos的位置System.out.println(myArrayList.getPos(3));// 给pos位置设置值myArrayList.setPos(3, 5);myArrayList.display();// 删除某个元素myArrayList.remove(3);myArrayList.display();// 获取顺序表长度System.out.println(myArrayList.size());// 清空顺序表myArrayList.clear();myArrayList.display();}转载地址:http://uoanz.baihongyu.com/