深圳整站,企业网络配置方案,南昌旅游集团网站建设,wordpress需要php#x1f495;世事犹如书籍#xff0c;一页页被翻过去。人要向前看#xff0c;少翻历史旧账。#x1f495; 作者#xff1a;Mylvzi 文章主要内容#xff1a;数据结构之顺序表的模拟实现 /*** Created with IntelliJ IDEA.* Description:* User: 绿字* Date:… 世事犹如书籍一页页被翻过去。人要向前看少翻历史旧账。 作者Mylvzi 文章主要内容数据结构之顺序表的模拟实现 /*** Created with IntelliJ IDEA.* Description:* User: 绿字* Date: 2023-10-12* Time: 8:53*/
import java.util.*;
/*** 顺序表详解*/
public class MyArrayList {private int[] elem;// 存放数据的数组private int usedSize;// 有效数据个数public static final int DEFAULT_SIZE 10;// 初始化顺序表public MyArrayList() {this.elem new int[DEFAULT_SIZE];}public MyArrayList(int ininCapacity) {// 自定义数组的大小this.elem new int[ininCapacity];}// 打印顺序表public void display() {for (int i 0; i this.usedSize ; i) {System.out.print(this.elem[i] );}}// 添加数据 默认是在末尾添加public void add(int data) {// 满了要扩容if(isFull()) {this.elem Arrays.copyOf(this.elem,2*this.elem.length);}this.elem[usedSize] data;this.usedSize;}// 判断是否已满public boolean isFull() {if(this.usedSize this.elem.length) {return true;}return false;}// 在 pos 位置新增元素public void add(int pos, int data) {// pos位置要合法if(pos0 || posthis.usedSize) {throw new RuntimeException(pos位置不合法);}if(isFull()) {this.elem Arrays.copyOf(this.elem,2*this.elem.length);}for (int i this.usedSize-1; i pos ; i--) {this.elem[i1] 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;}}System.out.println(数组不包含该元素);return false;}// 查找某个元素对应的位置public int indexOf(int toFind) {for (int i 0; i this.usedSize ; i) {if(this.elem[i] toFind) {return i;}}System.out.println(数组不包含该元素);return -1;}// 检查pos位置是否合法private void checkPosLegal(int pos) {if(pos0 || posthis.usedSize) {throw new posOutOfBoundException(pos 位置不合法);}}// 获取 pos 位置的元素public int get(int pos) {checkPosLegal(pos);return this.elem[pos];}// 给 pos 位置的元素设为 value pos位置必须含有元素public void set(int pos, int value) {checkPosLegal(pos);this.elem[pos] value;}//删除第一次出现的关键字keypublic void remove(int toRemove) {int index indexOf(toRemove);for (int i index; i this.usedSize-1 ; i) {this.elem[i] this.elem[i1];}this.usedSize--;}// 获取顺序表长度public int size() {return this.usedSize;}// 清空顺序表public void clear() {// 如果是引用类型所有的引用都要置空
// for (int i 0; i this.usedSize; i) {
// this.elem[i] null;
// }this.usedSize 0;}
}/*** Created with IntelliJ IDEA.* Description:* User: 绿字* Date: 2023-10-12* Time: 10:49*/
public class posOutOfBoundException extends RuntimeException{public posOutOfBoundException() {}public posOutOfBoundException(String message) {super(message);}
}/*** Created with IntelliJ IDEA.* Description:* User: 绿字* Date: 2023-10-12* Time: 9:02*/
public class Test1 {public static void main(String[] args) {MyArrayList myArrayList new MyArrayList(5);myArrayList.add(1);myArrayList.add(2);myArrayList.add(3);myArrayList.add(4);
/* System.out.println(myArrayList.size());myArrayList.remove(1);System.out.println(myArrayList.size());*/
// myArrayList.add(100,99);
/* myArrayList.set(0,999);myArrayList.remove(999);myArrayList.remove(2);myArrayList.remove(3);myArrayList.remove(4);myArrayList.remove(5);*//* System.out.println(myArrayList.get(0));System.out.println(myArrayList.get(-1));System.out.println(myArrayList.get(999));*/
// System.out.println(myArrayList.contains(2));
// System.out.println(myArrayList.indexOf(2));
//
/* myArrayList.add(0,999);myArrayList.add(0,999);myArrayList.add(0,999);myArrayList.add(0,999);myArrayList.add(0,999);*/
myArrayList.clear();myArrayList.display();}
}