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

网站忧化技巧小型门户网站建设硬件配置

网站忧化技巧,小型门户网站建设硬件配置,邯郸全网推广,威海网站建设whhl1、自定义MyArrayList类 该类里面基本有两个属性#xff0c;一个是用来存放数据的数组#xff0c;另外一个是用来描述已经存放数据的数量。同时设置arraylist表的默认长度为10#xff1b;代码如下#xff1a; public class MyArrayList {private int[] elem;private int u…1、自定义MyArrayList类 该类里面基本有两个属性一个是用来存放数据的数组另外一个是用来描述已经存放数据的数量。同时设置arraylist表的默认长度为10代码如下 public class MyArrayList {private int[] elem;private int usedSize;//表示表的实际占用空间//顺序表的默认大小public static final int DEFAULT_SIZE 10;public MyArrayList(int[] elem) {elem new int[DEFAULT_SIZE];} }2. 创建接口 我们创建一个接口要将arraylist要实现的抽象方法列出来使得后期直接在自定义类里面能够具体化 public interface IList {//新增元素,默认在数组最后新增public void add(int data);// 在 pos 位置新增元素public void add(int pos, int data);// 判定是否包含某个元素public boolean contains(int toFind) ;// 查找某个元素对应的位置public int indexOf(int toFind);// 获取 pos 位置的元素public int get(int pos);// 给 pos 位置的元素设为 value 更新public void set(int pos, int value);//删除第一次出现的关键字keypublic void remove(int toRemove) ;// 获取顺序表长度public int size();// 清空顺序表public void clear() ;// 打印顺序表注意该方法并不是顺序表中的方法为了方便看测试结果给出的public void display();boolean isFull();public boolean isEmpty(); } 同时我们的自定义类实现该接口并实现接口中的方法我们接下来通过自己手敲arraylist的一些方法来从底层深入的学习arraylist表如何完成一系列的方法实现方便我们了解arraylist表的运行逻辑和优缺点 3、实现具体方法 3.1 打印顺序表 只要知道当前类对象的实际长度即可完成打印顺序表操作 Overridepublic void display() {for (int i 0; i this.usedSize-1; i) {System.out.print(this.elem[i]-);}System.out.println();} 3.2新增元素  我们此处的方法默认添加的每一个元素是从底层数组末尾依次添加的 思路 1、 首先需要确定当前存储在数组中最后一位数据的索引即usedSize-1然后下一个存储空间范围合法的话直接将我们要添加的数据放到接下来的数组索引上即可数据存放的索引应该为usedSized 1.1 这时候就要考虑如果我们要存放数据之前要判断数组的空间是否满了我们之前默认存储容量为10 1.2 如果判断出数组当前已满我们就要对数组存空容量进行扩容 2、添加完成后usedSize往后移一位 代码如下  Overridepublic void add(int data) {checkCapacity();//此时表示空间足够可以存放数据this.elem[this.usedSize] data;this.usedSize;}private void checkCapacity() {if (isFull()){//如果当前的数组已经满了我们就要扩容elem Arrays.copyOf(elem,elem.length*2);}}Overridepublic boolean isFull() {return usedSize elem.length;}测试及结果 public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.display();} 3.3 在 pos 位置新增元素  思路在pos下标添加data 1、应该把pos下标到usedSzie-1下标之间的元素往右面移动包含pos且得先从最右边的元素开始移动 1、1必须保证pos下标位置在0~usedSize范围之间即一个顺序表只有0下标有位置想要往3下标位置插入数据是不科学的 1.2 如果要在usedSize-1的位置插入数据我们要进行扩容操作 2、最后userSize 详细图解如下图所示 代码如下所示 public class PosIllegality extends RuntimeException{public PosIllegality(String msg){super(msg);} }Overridepublic void add(int pos, int data) {try {checkPosOnAdd(pos);}catch (PosIllegality e) {e.printStackTrace();return;}//必须保证pos下标位置在0~usedSize范围之间所以要检查checkCapacity();//1、从最后一个有效的数据开始往后移动// 2、当i pos 就结束for (int i usedSize-1; i pos; i--) {//下标为pos的也得搬家elem[i1] elem[i];}//3、存放元素到pos 位置elem[pos] data;//4、usedSize;usedSize;}checkCapacity();//1、从最后一个有效的数据开始往后移动 //2、当i pos 就结束for (int i usedSize-1; i pos; i--) {elem[i1] elem[i];}//3、存放元素到pos 位置elem[pos] data;//4、usedSize;usedSize;} 执行结果 eg1 public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.add(4,99);myArrayList.display();} eg2 public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.add(2,29);myArrayList.display();} 3.4判定是否包含某个元素 思路先遍历整个数组再判断是否包含 注意首先要判断列表是否为空 此处代码图解 Overridepublic boolean contains(int toFind) {if(isEmpty()) {return false;}for (int i 0; i usedSize; i) {//如果是查找引用数据类型 一定记住 重写方法if(elem[i] toFind) {return true;}}return false;}Overridepublic boolean isEmpty() {return usedSize 0;} 3.5 查找某个元素对应的位置  找到列表中的钙元素返回其在列表中的索引 思路 1、如果列表为空则返回-1 2、遍历数组找到返回索引找不到返回-1 下图为方法代码和运行结果 Overridepublic int indexOf(int toFind) {if (isEmpty()){return -1;}for (int i 0; i usedSize; i) {if (elem[i] toFind){return i;}}return -1;}public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.add(2,29);myArrayList.display();System.out.println(myArrayList.indexOf(2023));System.out.println(myArrayList.indexOf(2024));} 3.6 获取 pos 位置的元素 思路 1、检查pos是否合法当pos不合法时抛出异常停止下面的代码运行 2、检查书序表是否为空如果链表为空抛出异常停止下面的代码运行 3、除此外返回pos 位置的元素 下图为代码逻辑图 具体方法如下 public class MyArrayListEmpty extends RuntimeException{public MyArrayListEmpty(String msg){super(msg);} }Overridepublic int get(int pos) {checkPosOnGetAndSet(pos);if (isEmpty()){throw new MyArrayListEmpty(获取指定下标元素时 顺序表为空);}return elem[pos];} private void checkPosOnGetAndSet(int pos) {if (pos 0 || pos usedSize){System.out.println(这个pos不符合法);throw new PosIllegality(查找pos下标元素时发现pos异常: pos);}}执行代码及结果 public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.add(2,29);myArrayList.display();System.out.println(myArrayList.get(1));System.out.println(myArrayList.get(6));} 3.7 给 pos 位置的元素设为 value  代码如下 Overridepublic void set(int pos, int value) {checkPosOnGetAndSet(pos);elem[pos] value;} public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(2023);myArrayList.add(11);myArrayList.add(29);myArrayList.add(2,29);myArrayList.display();myArrayList.set(1,2029);myArrayList.display();} 运行结果如图所示  3.8 删除第一次出现的关键字key  思路 1、先通过查找索引的方法寻找key在列表中的索引。如果没有找到停止运行 2、如果找到开始删除该元素自这个元素以后得所有元素往前移一个单位 3、删除成功后usedSize--                  Overridepublic void remove(int toRemove) {int index indexOf(toRemove);if(index -1) {System.out.println(没有这个数字);return;}for(int i index; i usedSize-1;i) {elem[i] elem[i1];}usedSize--;} 3.9 获取顺序表长度  Overridepublic int size() {return this.usedSize;} 3.10 清空顺序表  Overridepublic void clear() {this.usedSize 0;} ps:本次内容就到这里结束了喜欢的话还请大家一键三连哦
http://www.zqtcl.cn/news/877144/

相关文章:

  • 合肥公司做网站网站代码需要注意什么
  • 梧州网站制作公司高端网站开发公司有哪些
  • seo网站设计北京做app的公司有哪些
  • 佛山淘宝设计网站设计价格软件商城免费下载 app
  • 物联网型网站开发cms系统源码
  • 淘宝价格网站建设wordpress 点餐
  • 晋中网站建设公司汉滨区城乡建设规划局 网站
  • 2018年的网站制作湖北省随州市建设厅网站
  • 做网络销售保温材料用什么网站好企业网站的建设企业
  • 2008发布asp网站海外如何 淘宝网站建设
  • 小米云网站开发食品包装
  • 销售网站怎么做的帝国cms网站搬家教程
  • 甘肃省城市建设档案馆网站wordpress推广自己淘宝店
  • 专业做曝光引流网站国家反诈中心app下载流程
  • 深圳校园网站建设响应式手机网站制作
  • 景县住房和城乡规划建设局网站我想买个空间自己做网站
  • 网站建设申请计划宣传片拍摄方案模板
  • 网站开发项目经验描述html网站开发事例教程
  • 998元网站建设优化网站建设实训报告心得体会
  • 网站经营性备案流程搜索引擎优化的简写是
  • 长春制作网站南昌建站系统外包
  • 在火炉做网站公园坐什么车hexo wordpress 比较
  • 好的免费博客网站设计图软件
  • 网站建设合同电子版金融网站建设运营方案
  • 网站域名备案在哪里贵阳经济技术开发区网站
  • 戴尔公司网站建设成功的关键是什么网站商城建设公司
  • 用python做 网站论坛南宁网站建设 南宁联达亿
  • 做婚恋网站要多少钱网站首页页面设计多少钱
  • 营销型网站建设试卷wordpress怎么备份按在
  • 手机网站有什么区别是什么意思wordpress 推送公众号