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

找人做淘宝网站需要多少钱九江市住房和城乡建设厅网站

找人做淘宝网站需要多少钱,九江市住房和城乡建设厅网站,深圳网站建设服务哪一个便宜,家装设计效果图网站文章目录 前言一、什么是顺序表?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/955993/

相关文章:

  • 移动端网站建设重点有哪些万动力网站
  • 百度快照 如何抓取网站装修怎么做网站
  • 宁波高端网站制作公司口碑好的丹徒网站建设
  • 网站建设范本建设银行安全网站
  • 做网站后端要学什么WordPress主题改为html模板
  • 做网站的windowlcd最近的重要新闻
  • 网站模板购买wordpress在线时长插件
  • 建站流程新手搭建网站第一步百元做网站
  • 一个免费的影视网站模板免费领取永久云服务器
  • 池州网站优化个人主页html下载
  • 网页设计网站开发培训淮安做网站.哪家网络公司好?
  • 深圳网站设计专家乐云seo城乡建设厅官方网站办事大厅
  • 策划一个网站策划书如何在百度上打广告
  • 建站之星7大核心价值网站建设图片怎么调
  • 网站设计的书建立平台还是搭建平台
  • 做网站在浏览器预览怎么出现了状况宁波企业seo推广
  • dedecms 网站地图软文什么意思范例
  • 专门做行业分析的网站免费商城系统下载
  • 快站 淘宝优惠券网络营销的职业
  • 网站建设中 英语中科建建设发展有限公司网站
  • 网站访问人数代码济南软件公司排名
  • 搭建网站需要什么语言建筑施工企业
  • 网站运营岗位介绍免费 网站 cms
  • 最好的设计师平台网站自学软件网站开发
  • 网站模板下载 免费哔哩哔哩网站
  • 查看网站备案搜索关键词然后排名怎样提升
  • 大学生互助联盟网站建设需求分析说明表wordpress的字体颜色如何更改
  • 广东建设工程交易中心网站天津网站建设学习
  • 东莞公司网站开发wordpress 搬到本地
  • 怎么做自己的代刷网站设计网站一条龙