当前位置: 首页 > 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/817141.html

相关文章:

  • 建设企业网站收费wordpress主题收费
  • 韶关市建设局官方网站南昌网站建设好企业网站
  • jsp做网站图片怎么存储做网站的公司深圳
  • 云开发低代码平台最好的seo优化公司
  • 公司网站怎么做教程网站建设技术招聘
  • 福州作公司网站的公司百度自动点击器
  • 电商网站制作方案药品网站建设存在的问题
  • 子网站怎么做WordPress网页描述标签
  • dnf免做卡网站怎样制作微信小程序
  • 如需锦州网站建设会员管理网站建设
  • 淘宝网网站建设微信公众平台推广方案
  • 确定网站主题做网站需要的条件
  • 网站建设所有权网站开发公司挣钱吗
  • 响应式网站图解美食网站首页怎么做
  • 加强企业网站建设163网易免费企业邮箱
  • 有哪些网站可以做全屏代码网站开发推荐英文字体
  • 太原提高网站排名优化营商环境个人心得
  • 淄博网站电子商城平台建设网站建立的重要性
  • wordpress views深圳做seo有哪些公司
  • 河南省住房建设厅官方网站linux怎么使用wordpress
  • 网站如何做品牌宣传没有服务器如何做网站
  • 网站如何改版浙江微信网站建设
  • 修改网站图片做网站维护价格
  • 做电商网站的公司梅州东莞网站建设
  • 揭阳 网站建设做茶道网站
  • 西安做商铺的网站免费网站商城模板
  • 河南网站备案代理成都网站优化方案
  • 上海设计网站wordpress monster
  • 清远市企业网站seo联系方式国外网站设计版式欣赏
  • 点网站建设wordpress替换谷歌字体库