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

深圳正规网站建设公司wordpress安装流程图

深圳正规网站建设公司,wordpress安装流程图,wordpress股市实时数据,珠海网站建设专线文章目录 前言一、什么是顺序表?1.1 顺序表的概念1.2 顺序表的建立 二、MyArrayList的实现三、顺序表的方法四、关于顺序表的例子总结 前言 提示:这里涉及到的ArrayList类是一个泛型类,同时后面的很多内容都会涉及到泛型,如果不了…

文章目录

  • 前言
  • 一、什么是顺序表?
    • 1.1 顺序表的概念
    • 1.2 顺序表的建立
  • 二、MyArrayList的实现
  • 三、顺序表的方法
  • 四、关于顺序表的例子
  • 总结


前言

提示:这里涉及到的ArrayList类是一个泛型类,同时后面的很多内容都会涉及到泛型,如果不了解泛型,可以在我给出的链接中查看了解一下,比较简单>>JAVA泛型<<


一、什么是顺序表?

1.1 顺序表的概念

概念的内容来源于>>ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素

它的本质就是一个数组。只不过这个数组在容量达到上限后会自动将数组进行扩容,但是,不是在同一个数组上而是返回一个扩容后的新数组,将原来数组上的内容复制到新的数组上,给我们一种直接扩容的感觉
在这里插入图片描述

在这里插入图片描述

1.2 顺序表的建立

import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> 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[i+1] = 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[i+1];}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 List<List<Integer>> generate(int numRows) {if(numRows <= 0){return null;}List<List<Integer>> 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();List<List<Integer>> array = generate(s);for (int i = 0; i < s; i++) {System.out.println(array.get(i));}}
}

在这里插入图片描述

总结

本篇文章,介绍了有关顺序表的内容,包括什么是顺序表、如何实现自己的顺序表、以及使用顺序表解决问题的例子。

http://www.yayakq.cn/news/682691/

相关文章:

  • 内江市规划建设教育培训 网站口碑营销是指
  • 品牌网站建设策划方案网站开发保密合同范本
  • wordpress建多个网站石家庄到底怎样了
  • 如何建立网站平台的步骤长春人文学院
  • 个人网站开发工具asp.net网站转php
  • 网站SEO建设摘要wordpress做小程序商城
  • 企业网站排名运营.net 创建网站项目
  • 备案期间网站关闭自己在家开网站做推广
  • 网站建设的主要结构公司注册地址变更需要哪些资料
  • 京东网站谁建设白云区网络推广
  • 重庆平台网站建设工作空间建网站
  • 做网站首页尺寸大小个体经营可以建设网站吗
  • 访问wap网站如今做知乎类网站怎么样
  • vue 做企业网站网站制作相关知识
  • asp.net网站开发流程及相关工具东莞地铁建设
  • 大型网站怎么做seo网站修改解析怎么做
  • cms网站群风格活泼的网站设计
  • 网站建设和网页制作网站建设付款分期付款协议
  • 免费行情网站app大全品牌网站分析
  • 网站seo优化综合服务公司哪家好给自己的网站做关键词流程
  • 个人可以做外贸网站吗自己做网站兼职
  • 自己做网站服务器要多少钱科技网站设计公司有哪些
  • 网站建设排名优化wordpress如何实现静态
  • jsp怎么做视频网站栖霞建设招标网站
  • 域名解析查询站长工具金沙集团186cc成色
  • 官方网站app最新下载金泉网做的山东黄锈石网站有哪些
  • 网站超市源码ps做网站好看的logo
  • 想找做海报的超清图片去哪个网站找外卖平台
  • linux 建立网站文山州住房和城乡建设局网站
  • 在青岛建网站详情页模板套用