本文共 6070 字,大约阅读时间需要 20 分钟。
创建空的成员变量并用构造函数初始化
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位置的元素
//获取pos位置的元素 public int getPos(int pos) { if(pos < 0 || pos >= this.usedSize) { return -1; } return this.elem[pos] ; }
给pos位置设置为value
//给pos位置设为value public void setPos(int pos,int value) { if(pos < 0 || pos >= this.usedSize) { return; } this.elem[pos] = value; }
删除某个元素
//删除第一次出现的关键字key //找到是否有toremmve //将后面的元素赋值给前面 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(); }}
完整代码
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 //找到是否有toremmve //将后面的元素赋值给前面 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/