博客
关于我
实现顺序表(Java)
阅读量:519 次
发布时间:2019-03-08

本文共 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/

你可能感兴趣的文章
Objective-C实现分层聚类算法(附完整源码)
查看>>
Objective-C实现分水岭算法(附完整源码)
查看>>
Objective-C实现分而治之算法(附完整源码)
查看>>
Objective-C实现分解质因数(附完整源码)
查看>>
Objective-C实现切换数字的符号switchSign算法(附完整源码)
查看>>
Objective-C实现列主元Gauss消去法(附完整源码)
查看>>
Objective-C实现列主元高斯消去法(附完整源码)
查看>>
Objective-C实现创建一个链表和打印该链表算法(附完整源码)
查看>>
Objective-C实现创建多级目录(附完整源码)
查看>>
Objective-C实现删除文件中的指定内容(附完整源码)
查看>>
Objective-C实现删除文本文件空行(附完整源码)
查看>>
Objective-C实现删除重复的字母字符算法(附完整源码)
查看>>
Objective-C实现判断32位的数字是否为正数isPositive算法(附完整源码)
查看>>
Objective-C实现判断A数组是否为B数组的子集(附完整源码)
查看>>
Objective-C实现判断IP4地址是否有效算法(附完整源码)
查看>>
Objective-C实现判断一个数是否为krishnamurthy数的算法(附完整源码)
查看>>
Objective-C实现判断一个数是否为质数算法(附完整源码)
查看>>
Objective-C实现判断三角形的类型(附完整源码)
查看>>
Objective-C实现判断位是不是偶数isEven算法(附完整源码)
查看>>
Objective-C实现判断字符串是否包含特殊字符算法(附完整源码)
查看>>