当前位置: 首页 > news >正文

顺序表(泛型)

package Data_Structure;import java.util.Scanner;public class SeqList<T> {private int length;static  private int MAXSIZE =100;private Object[] data;// 0<=i<=length,允许在末尾的下一个位置插入@SuppressWarnings("unchecked")public  void InsertList(int i,T data) throws IllegalStateException{//保证其插入位置合法以及还有插入位置if(length == MAXSIZE ){throw new IllegalStateException("该表已满");}if(i<0 || i>length){throw new IllegalArgumentException("非法参数");}//从最后一个元素开始,依次将元素后移for(int k = length-1; k>=i;k--){this.data[k+1] = this.data[k];}//然后直接插入this.data[i] = data;this.length++;System.out.println("索引"+i+"位置成功插入元素"+data);}//删除索引位置i的元素, 0<=i<length@SuppressWarnings("unchecked")public  T DeleteList(int i) {if(length==0){throw new IllegalStateException("非法操作");}if(i<0||i>=length){throw new IllegalStateException("非法参数");}T element = (T)this.data[i];//元素依次迁移,覆盖掉原本的位置。for(int k=i;k<length-1;k++){this.data[k]=this.data[k+1];}this.length--;this.data[length] = null;return element;}public SeqList() {this.length=0;this.data = new Object[MAXSIZE];}public int getLength() {return length;}public void setLength(int length){this.length=length;}@SuppressWarnings("unchecked")public  T getDataForIndex(int i) {return (T)this.data[i];}public void showList(){System.out.print("[");for(int i=0;i<length;i++){System.out.print(this.<T>getDataForIndex(i));if(i<length-1)System.out.print(",");}System.out.println("]");}public static void main(String[] args){SeqList<String> stringSeqList = new SeqList<>();Scanner in = new Scanner(System.in);for (int i = 0; i < 10; i++) {System.out.println("请输入字符串:");String str = in.next();stringSeqList.<String>InsertList(i,str);}stringSeqList.<String>showList();}
}
http://www.jsqmd.com/news/263915/

相关文章:

  • 后劲大到离谱 董子健导演首作看完缓了两天!
  • 穷举法
  • 求最大公约数
  • 使用VS2022 Performance Profiler进行CPU分析
  • swift高阶函数
  • 【NWFSP问题】基于鳄鱼伏击算法CAOA求解零等待流水车间调度问题NWFSP附Matlab代码
  • 谢幕
  • 【】
  • 手动部署kiro到服务器上
  • 亲测好用!专科生毕业论文必备TOP9一键生成论文工具
  • [Android] 布丁扫描v3.4.2.2
  • hotspot中的Java类对象如何保存注解
  • hotspot中的Java类对象如何保存虚函数
  • 强烈安利9个AI论文写作软件,本科生论文无忧!
  • 冥想第一千七百六十七天(1767)
  • 缓存 --- Redis缓存的一致性
  • Gemini认证失败?一文搞定所有疑难
  • 7. 为什么云厂商集体选择 vLLM
  • CF1781F Bracket Insertion
  • 8. vLLM vs TensorRT-LLM
  • 如何配置Dev-C++使用特定的编译器版本?
  • 深入解析:浏览器底层探秘:Chrome的奇妙世界
  • 如何在Dev-C++中设置编译器参数?
  • 4. 为什么 Triton 不够了
  • day143—递归—对称二叉树(LeetCode-101)
  • 5. vLLM 出现前的推理地狱
  • MCC音频剪辑工具v1.1.0.0:自动处理配音气口间隙 - 教程
  • 6. PagedAttention 的历史背景
  • 数据湖与数据仓库的演进与未来:一场技术辩论
  • RNR-Map:为视觉导航构建“可渲染”的新型视觉导航地图 - MKT