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

昆山新宇网站建设自学考试

昆山新宇网站建设,自学考试,高端网站建设公司怎么选,wordpress <>文章目录 前言一、什么是顺序表#xff1f;1.1 顺序表的概念1.2 顺序表的建立 二、MyArrayList的实现三、顺序表的方法四、关于顺序表的例子总结 前言 提示#xff1a;这里涉及到的ArrayList类是一个泛型类#xff0c;同时后面的很多内容都会涉及到泛型#xff0c;如果不了… 文章目录 前言一、什么是顺序表1.1 顺序表的概念1.2 顺序表的建立 二、MyArrayList的实现三、顺序表的方法四、关于顺序表的例子总结 前言 提示这里涉及到的ArrayList类是一个泛型类同时后面的很多内容都会涉及到泛型如果不了解泛型可以在我给出的链接中查看了解一下比较简单JAVA泛型 一、什么是顺序表 1.1 顺序表的概念 概念的内容来源于ArrayList ArrayList 类是一个可以动态修改的数组与普通数组的区别就是它是没有固定大小的限制我们可以添加或删除元素。 它的本质就是一个数组。只不过这个数组在容量达到上限后会自动将数组进行扩容但是不是在同一个数组上而是返回一个扩容后的新数组将原来数组上的内容复制到新的数组上给我们一种直接扩容的感觉 1.2 顺序表的建立 import java.util.ArrayList; // 引入 ArrayList 类 ArrayListE objectName new ArrayList();  // 初始化补充内容 我当时想直接用original这个对象进行clone发现是不行的List是个接口不是个类没有实现Cloneable接口无法克隆。 同时Array.asList,这个方法返回的是一个固定的视图 当我们想在这个对象中加数据时我们会发现 这是为什么呢 解释 Arrays.asList(1, 2, 3)返回的是一个java.util.Arrays.ArrayList类型的对象它并不是java.util.ArrayList类型。虽然它们都实现了List接口但不能直接进行强制类型转换。同时因为它们都实现了List接口所以以List 为类型的引用可以接收Arrays.asList的返回值 二、MyArrayList的实现 将需要实现的方法放在一个接口中在通过自定义类实现这个接口 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 位置的元素设为 valuepublic void set(int pos, int value);//删除第一次出现的关键字keypublic void remove(int toRemove);// 获取顺序表长度public int size();// 清空顺序表public void clear();// 打印顺序表注意该方法并不是顺序表中的方法为了方便看测试结果给出的public void display(); }自定义的顺序表 import java.util.Arrays;public class MyArrayList implements IList{public int[] array;private static final int DEFAULT_CAPACITY 10;public MyArrayList(){this.array new int[DEFAULT_CAPACITY];}private int useSide;//判断数组是否满了private boolean isFull(int[] array){if(array.length DEFAULT_CAPACITY){//如果长度等于初始容量说明数组满了return true;}return false;}//扩容数组private int[] grow(int[] array){return Arrays.copyOf(this.array,array.length*2);}Override// 新增元素,默认在数组最后新增public void add(int data) {if (isFull(this.array)){this.array grow(this.array);}array[useSide] data;useSide;}//判断pos是否正确private void checkpos(int pos){try {if(pos 0 || pos this.useSide){throw new OutOfArrayException(越界异常);}}catch (OutOfArrayException e){e.printStackTrace();}}Override// 在 pos 位置新增元素public void add(int pos, int data) {try {checkpos(pos);if (isFull(this.array)){this.array grow(this.array);}for (int i this.useSide - 1; i pos; i--) {array[i1] array[i];}array[pos] data;this.useSide;}catch (OutOfArrayException e){e.printStackTrace();}}Override// 判定是否包含某个元素public boolean contains(int toFind) {for (int i 0; i this.useSide; i) {if(toFind this.array[i]){return true;}}return false;}Override// 查找某个元素对应的位置public int indexOf(int toFind) {for (int i 0; i this.useSide; i) {if(toFind this.array[i]){return i;}}return -1;}private void isEmpty(int[] array){if(empty(array)){throw new IsEmptyException(空数组越界访问);}}private boolean empty(int[] array){return array.length 0;}Override// 获取 pos 位置的元素public int get(int pos) {try {checkpos(pos);isEmpty(this.array);return this.array[pos];}catch (OutOfArrayException | IsEmptyException e){e.printStackTrace();}return -1;}Override// 给 pos 位置的元素设为 valuepublic void set(int pos, int value) {try {checkpos(pos);isEmpty(this.array);array[pos] value;}catch (OutOfArrayException | IsEmptyException e){e.printStackTrace();}}Override//删除第一次出现的关键字keypublic void remove(int toRemove) {try {isEmpty(this.array);int m indexOf(toRemove);for (int i m; i this.useSide - 1; i) {array[i] array[i1];}this.useSide--;}catch (IsEmptyException e){e.printStackTrace();}}Override// 获取顺序表长度public int size() {return this.useSide;}Override// 清空顺序表public void clear() {this.useSide 0;}Override// 打印顺序表注意该方法并不是顺序表中的方法为了方便看测试结果给出的public void display() {for (int i 0; i this.useSide; i) {System.out.print(array[i] );}System.out.println();} }自定义的异常OutOfArrayException超出数组范围 public class OutOfArrayException extends RuntimeException{public OutOfArrayException(){super();}public OutOfArrayException(String m){super(m);} }自定义异常数组为空 public class IsEmptyException extends RuntimeException{public IsEmptyException(){super();}public IsEmptyException(String m){super(m);} } 测试类 public class Test {public static void main(String[] args) {MyArrayList myArrayList new MyArrayList();myArrayList.add(10);myArrayList.add(10);myArrayList.add(2,99);myArrayList.add(10);myArrayList.add(10);myArrayList.display();System.out.println(myArrayList.get(2));System.out.println(myArrayList.indexOf(10));} }三、顺序表的方法 四、关于顺序表的例子 题目来源杨辉三角 public class Test {public static ListListInteger generate(int numRows) {if(numRows 0){return null;}ListListInteger array new ArrayList();for(int i 0;i numRows;i){array.add(new ArrayList());}array.get(0).add(1);for(int i 1 ; i numRows ;i){array.get(i).add(1);for(int j 1; j i; j){array.get(i).add(array.get(i-1).get(j)array.get(i-1).get(j-1));}array.get(i).add(1);}return array;}public static void main(String[] args) {Scanner scanner new Scanner(System.in);int s scanner.nextInt();ListListInteger array generate(s);for (int i 0; i s; i) {System.out.println(array.get(i));}} }总结 本篇文章介绍了有关顺序表的内容包括什么是顺序表、如何实现自己的顺序表、以及使用顺序表解决问题的例子。
http://www.hkea.cn/news/14389549/

相关文章:

  • 品牌网站建设内容框架济宁seo推广
  • 石家庄网站维护群辉nas怎么做网站
  • 中医网站模板磁力搜索引擎2023
  • 悦诗风吟网站建设策划书安阳网站建设报价
  • 广州网站推广团队全网推广开户
  • 台州哪里做网站做解决方案的网站
  • 石家庄网站seo顾问.net做网站c#
  • 北京想象力网站建设推广引流图片
  • 网站开发php和python手机网站建设原则
  • 如何建设网站步骤wordpress如何重置
  • 龙岗中心城网站建设在北京哪家公司建网站合适
  • 有做外国人的零售网站吗网站系统建设方案
  • 坑梓网站建设信息网站数据丢失怎么办
  • 中国建设信息港网站南京注册公司
  • 杭州公司网站域名续费域名没过期 网站打不开怎么办
  • 番禺网站开发公司电话网页历史记录保存天数
  • 岳阳手机网站建设网络系统管理学什么
  • 别的网站做相关链接怎么做网站建设制作临沂网站建设选盛誉
  • 东莞品牌网站设计公司计公司网站建设项目运营岗
  • 做电影视频网站赚钱嘛搭建单位网站
  • 网站建设模板漏洞做网站领券收佣金
  • 宁夏网站推广商城微信网站开发
  • 如何学习网站制作杭州建设厅特种作业证
  • 计算机专业学做网站吗青州做网站
  • 完整网站开发微信小程序会员卡管理系统
  • 建设美食电子商务网站四川成都建设网
  • 新网站收录多少关键词免费咨询皮肤科医生
  • 北京快速建站模板企业 怎么建交互网站
  • 做平面素材比较好的网站局域网建设网站工具
  • 网站系统环境的搭建水印wordpress