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

测量为什么要建站网络营销推广服务商

测量为什么要建站,网络营销推广服务商,网站新闻源码,如何做微信收费视频网站这篇文章我们自己实现一个顺序表, 从而更好的认识它。 一、顺序表的本质 顺序表的本质其实就是一个数组,但是在插入,查找与删除上,有些复杂,顺序表通过对方法进行封装,方便了使用。 二、自己的顺序表 2.…

这篇文章我们自己实现一个顺序表, 从而更好的认识它。

一、顺序表的本质

顺序表本质其实就是一个数组,但是在插入,查找与删除上,有些复杂,顺序表通过对方法进行封装,方便了使用。



二、自己的顺序表

2.1 我们先来定义一个接口,用来规范好方法

在接口中定义好 增删改查 的方法,在顺序表类中继承好这个接口


2.2 定义好顺序表需要的变量

分别是需要操作的数组,在顺序表中有效的数据,顺序表的大小



三、实现各种方法

不全部介绍,演示几个比较严谨的方法

增加方法:

判满,扩容,判断插入位置是否合法


删除一个数据的方法:


其余较简单方法不演示了,都是利用数组和usedsize写的

import java.util.ArrayList;
import java.util.Arrays;public class MyArraylist implements Ilist{public int[] array;public int usedSize;//顺序表中有意义的位数public final int capacity = 10 ;//固定顺序表的大小public MyArraylist() {this.array = new int[capacity];}//判断数组是否满了public boolean isFull(){return this.usedSize == capacity;}//数组满了要扩容,复制原来的数组,把长度扩大二倍private void grow(){this.array = Arrays.copyOf(this.array,this.array.length*2);}//检查插入位置是否合法public void checkPos(int pos) throws PosIllegal{if(pos<0 || pos>usedSize){throw new PosIllegal("插入位置不合法");}}//判断数组是否为空public void checkEmpty(){if(isEmpty()){throw new ArrayEmptyException("顺序表为空!");}}public boolean isEmpty(){return usedSize == 0;}@Overridepublic void add(int data) {if (isFull()){this.grow();}this.array[this.usedSize] = data;usedSize++;}@Overridepublic void add(int pos,int data) {try {//位置判断是否合法checkPos(pos);//判断数组是否满了if (isFull()){this.grow();}//挪动元素for (int i = this.usedSize-1; i >=pos ; i--) {this.array[i+1] = this.array[i];}this.array[pos] = data;usedSize++;}catch (PosIllegal e){System.out.println("插入位置有问题。。。");e.printStackTrace();}}//查找数组是否包含toFind@Overridepublic boolean contains(int toFind) {for (int i = 0; i <usedSize ; i++) {if(array[i]==toFind){return true;}}return false;}//返回要找数据的下标@Overridepublic int indexOf(int toFind) {for (int i = 0; i <usedSize ; i++) {if(array[i]==toFind){return i;}}return -1;}public void checkPos2(int pos) throws PosIllegal{if(pos<0 || pos>=usedSize){throw new PosIllegal("插入位置不合法");}}@Override//获取指定位置的数值public int get(int pos) {try{checkEmpty();checkPos2(pos);return array[pos];}catch (PosIllegal e){e.printStackTrace();}catch (ArrayEmptyException e) {e.printStackTrace();}return -1;}@Override//更新某位置public void set(int pos,int value) {try{checkEmpty();checkPos2(pos);array[pos]=value;}catch (PosIllegal e){e.printStackTrace();}catch (ArrayEmptyException e) {e.printStackTrace();}}@Override//移除某个数据(不确定位置)public void remove(int toRemove) {try{checkEmpty();int pos = indexOf(toRemove);if(pos==-1){return;}for (int i = pos; pos< usedSize-1  ; i++) {//减1是为了最后一位不用变array[i]=array[i+1];usedSize--;}}catch (ArrayEmptyException e) {e.printStackTrace();}}@Overridepublic int size() {return this.usedSize;}@Override//清空顺序表的方法public void clear() {for (int i = 0; i <usedSize ; i++) {usedSize = 0;}}@Override//打印顺序表的方法public void display() {for (int i = 0; i <this.usedSize ; i++) {System.out.print(this.array[i]+" ");}}
}

接口代码:

public interface Ilist {// 在 pos 位置新增元素void add(int data);void add(int pos,int data);// 判定是否包含某个元素public boolean contains(int toFind);// 查找某个元素对应的位置public int indexOf(int toFind);// 获取 pos 位置的元素public int get(int pos);// 给 pos 位置的元素设为 valuepublic void set(int pos,int value);//删除第一次出现的关键字keypublic void remove(int toRemove);// 获取顺序表长度public int size();// 清空顺序表public void clear();// 打印顺序表,注意:该方法并不是顺序表中的方法,为了方便看测试结果给出的void display();}

http://www.dtcms.com/wzjs/139128.html

相关文章:

  • 网站开发实习计划模板网页制作模板
  • 河南网站建设价格新闻最近新闻10条
  • 五大建设的内容网站seo教材
  • 免费网站建设360南昌做seo的公司有哪些
  • 更换网站需要怎么做网站推广软件免费版
  • 贵阳网站建设方舟网络网上推广赚钱项目
  • 建设网站的优点跟缺点seo案例分析
  • 政府网站建设背景合肥seo按天收费
  • 乐山沙湾区住房建设局网站百度关键词怎么优化
  • 毕业设计做视频网站软件推广是什么工作
  • 诚信通网站怎么做关键词首页排名代发
  • wordpress 首页乱码优化关键词排名优化公司
  • 网站 水印南京百度
  • 张家界建设网站临沂百度seo
  • 网站建设费如何核算互联网营销师怎么考
  • 重庆网站建设之凡科建站怎么建网站
  • python做笔记的网站nba实力榜最新排名
  • 刚做的网站怎么搜狗seo排名软件
  • 百度网站诊断深圳专业seo外包
  • 山东省建设部网站沈阳网站关键词优化多少钱
  • 用户体验的重要性国内seo公司哪家最好
  • 麻涌建设网站百度推广登录页面
  • 简述dw网站开发流程长沙网站推广
  • 简单手机网站如何制作品牌策划运营公司
  • 网站关键词挖掘关键词优化和seo
  • 屯昌网站建设百度怎么进入官方网站
  • 网站后台乱码怎么办聚名网域名
  • 烟台seo网站推广网络营销专业就业公司
  • wordpress设置2个网站国际新闻最新消息
  • 提供网站建设工具的品牌有哪些福州关键词快速排名