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

怎么做一网站首页成都市微信网站建设公司

怎么做一网站首页,成都市微信网站建设公司,网站代备案多少钱,seo搜索排名使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法: public class MyArrayList { private int[] array; pri…

使用Java简单实现一个顺序表

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

线性表大致包含如下的一些方法:

public class MyArrayList {
    private int[] array;
    private int size;
    // 默认构造方法默认分配空间
    SeqList(){   }
    // 将顺序表的底层容量设置指定容量
    SeqList(int initcapacity){   }

     // 新增元素,默认在数组最后新增
    public void add(int data) { }
    // 在 pos 位置新增元素
    public void add(int pos, int data) { }
    // 判定是否包含某个元素
    public boolean contains(int toFind) { return true; }
    // 查找某个元素对应的位置
    public int indexOf(int toFind) { return -1; }
    // 获取 pos 位置的元素
    public int get(int pos) { return -1; }
    // 给 pos 位置的元素设为 value
    public void set(int pos, int value) {   }
    //删除第一次出现的关键字key
    public void remove(int toRemove) {   }
    // 获取顺序表长度
    public int size() { return 0; }
    // 清空顺序表
    public void clear() {   }
   
    // 打印顺序表
    public void display() {   }
}

 接下来根据上面的方法实现一个 int 类型的顺序表:

import java.util.Arrays;
public class MyArrayList {private int[] elem;private int usedSize;private static final int DEFAULT_SIZE = 10;public MyArrayList(){elem = new int[DEFAULT_SIZE];}public MyArrayList(int initCapacity){elem = new int[initCapacity];}private boolean checkCapacity(){if(this.usedSize == elem.length){return true;}return false;}public void display(){for (int i = 0; i < this.usedSize; i++) {System.out.print(this.elem[i] + " ");}}public void add(int data){if(checkCapacity()){this.elem = Arrays.copyOf(this.elem,2*elem.length);}this.elem[this.usedSize] = data;this.usedSize++;return;}public void add(int pos,int data){if(pos > this.usedSize || pos < 0){throw new PosOutOfBoundsException("插入位置错误!");}if(checkCapacity()){this.elem = Arrays.copyOf(this.elem,2*elem.length);}for (int i = this.usedSize - 1; i >=pos ; i--) {elem[i+1] = elem[i];}this.elem[pos] = data;this.usedSize++;return;}public boolean contains(int data){for (int i = 0; i < this.usedSize; i++) {if(this.elem[i] == data){return true;}}return false;}public int indexof(int data){for (int i = 0; i < this.usedSize; i++) {if(this.elem[i] == data){return i;}}return -1;}public int get(int pos){if(pos >= this.usedSize || pos < 0){throw new PosOutOfBoundsException("输入的位置错误!");}return this.elem[pos];}public void set(int pos,int data){if(pos >= this.usedSize || pos < 0){throw new PosOutOfBoundsException("输入的位置错误!");}this.elem[pos] = data;}public int size(){return this.usedSize;}public void remove(int data){if(this.contains(data)){int pos = this.indexof(data);for (int i = pos; i < this.usedSize - 1; i++) {this.elem[pos] = this.elem[pos+1];}this.usedSize--;}else{throw new PosOutOfBoundsException("没有该元素");}}public void clear(){this.usedSize = 0;return;}
}

ArrayList简介

在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:

  • ArrayList是以泛型方式实现的,使用时必须要先实例化
  • ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问
  • ArrayList实现了Cloneable接口,表明ArrayList是可以clone的
  • ArrayList实现了Serializable接口,表明ArrayList是支持序列化的
  • 和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者
  • CopyOnWriteArrayList
  • ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表

ArrayList如何使用

ArrayList的构造方法

ArrayList中的构造方法:

ArrayList();//无参构造

ArrayList(Collection<? extends E> c);//利用其他 Collection 构建 ArrayList

ArrayList(int initialCapacity);//指定顺序表初始容量

 代码示例:

public class Test {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>();//无参构造List<Integer> list2 = new ArrayList<>(10);//指定容量list2.add(1);list2.add(2);list2.add(3);List<Integer> list3 = new ArrayList<>(list2);//利用其他 Collection 构建 ArrayList}
}

ArrayList常见操作

尾插

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();//无参构造list.add(1);list.add(2);list.add(3);System.out.println(list);}
}

将元素插入到指定位置

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(1,4);System.out.println(list);}
}

尾插另一个顺序表中的元素

public class Test {public static void main(String[] args) {List<Integer>  list1 = new ArrayList<>();list1.add(4);list1.add(5);list1.add(6);List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.addAll(list1);System.out.println(list);}
}

删除指定位置元素

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.remove(1);System.out.println(list);}
}

删除指定数据

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.remove(new Integer(2));System.out.println(list);}
}

获取指定位置元素

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);System.out.println(list.get(1));}
}

将指定位置元素设置为新数据

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.set(1,4);System.out.println(list);}
}

清空顺序表

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.clear();System.out.println(list);}
}

判断一个元素是否在顺序表中

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);System.out.println(list.contains(2));System.out.println(list.contains(4));}
}

返回第一个指定元素所在下标

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(1);System.out.println(list.indexOf(1));}
}

返回最后一个指定元素所在下标

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(1);System.out.println(list.lastIndexOf(1));}
}

截取部分list

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);System.out.println(list.subList(0,2));}
}

遍历 ArrayList 的三种方法

ArrayList 可以使用三方方式遍历:for循环+下标、foreach增强循环、使用迭代器

public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);//使用fori遍历for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i));}System.out.println();//使用foreach遍历for(Integer integer:list){System.out.print(integer);}System.out.println();//使用迭代器遍历Iterator<Integer> it = list.listIterator();while(it.hasNext()){System.out.print(it.next());}}
}

运行结果:

 ArrayList的场景使用

洗牌算法

将一副扑克牌随机打乱,并分配给三个人,每人五张牌

算法原码所在位置:

shufflecards · 一直淡水鱼/Java经典例题 - 码云 - 开源中国 (gitee.com)

杨辉三角

题目描述:

代码实现:

public class Test {public static List<List<Integer>> generate(int numRows) {List<List<Integer>> list = new LinkedList<>();for (int i = 0; i < numRows; i++) {List<Integer> row = new LinkedList<>();for (int j = 0; j < i + 1; j++) {if (j == 0 || i == j) {row.add(1);} else {row.add(list.get(i - 1).get(j - 1) + list.get(i - 1).get(j));}}list.add(row);}return list;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int numRows = scanner.nextInt();List<List<Integer>> list = generate(numRows);for (int i = 0; i < numRows; i++) {for (int j = 0; j < i + 1; j++) {System.out.print(list.get(i).get(j) + " ");}System.out.println();}}
}

 运行结果图:

http://www.15wanjia.com/news/174443.html

相关文章:

  • 南昌建筑行业网站开发鞍山+网站建设
  • 做蛋糕网站有哪些什么秀网站做效果图
  • 平顶山做网站推广创意做网站公司
  • 360永久免费建网站免费网站的手机版本源码模板
  • 宁波网站建设公司哪有上海高端网站建
  • 北京商业网站建设购买网店
  • 老网站不要了做新站需要怎么处理软件开发公司排行
  • 山西网站建设公司网站导航栏全屏怎么做
  • 金华网站建设方案咨询网站开发ssh
  • 自媒体运营小程序开发网站建设怎样成立一个网站
  • 网站改备案信息吗手机网站开发方案
  • 免费软件制作网站网页设计排版作品分析
  • 网站开发有哪些架构网站搜索建设
  • icp备案 网站负责人做网站算软件开发么
  • 免费的建站软件推荐下载顺德手机网站设计价位
  • 网站设计制作要多少钱中国网教育
  • 浙江网站建设品牌设计html5手机网站教程
  • 浏阳做网站wordpress 文章时间
  • 公司微信网站开发东莞手机网站价格表
  • 亚马逊欧洲站wordpress多站点开启
  • 视频网站后台百度云wordpress教程
  • 网站制作售后如何设计一个公司网站步骤
  • 网站建设联系金堂企业网站建设
  • 电子商务网站建设课程的心得无锡企业建站
  • 沈阳网站建设服务器做网站制作怎么样
  • 附近的广告公司电话怎么做网站优化 sit
  • 重庆网站建设哪家公司那家好昆明高端seo怎么做
  • 贵州省都匀市网站建设国外修图教程网站
  • 上海网站推广找哪家营销与销售的区别
  • 网站页面高度成都网页制作设计培训