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

建设网站图有源码怎么做网站

建设网站图,有源码怎么做网站,wordpress 问答功能,公司网站突然打不开我们知道 ArrayList 是一个集合#xff0c;它能存放各种不同类型的数据#xff0c;而且其容量是自动增长的。那么它是怎么实现的呢#xff1f;其实 ArrayList 的底层是用 数组实现的。我们查看 JDK 源码也可以发现。而用数组实现集合的原理有两点#xff1a;1、能自动扩容2…我们知道 ArrayList 是一个集合它能存放各种不同类型的数据而且其容量是自动增长的。那么它是怎么实现的呢其实 ArrayList 的底层是用 数组实现的。我们查看 JDK 源码也可以发现。而用数组实现集合的原理有两点1、能自动扩容2、能存放不同类型的数据这两点我们是这样解决的1、当一个数据存放满了我们就将这个数据复制到一个新的数组中而这个新的数组容量要比原数组大。通过这样不断的扩大数组长度也就是集合的容量。那么这里我们用到了这个方法  System.arraycopy完整的写法为public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)参数 src -- 这是源数组  srcPos -- 这是源数组中的起始位置 dest -- 这是目标数组  destPos -- 这是目标数据中的起始位置  length -- 这是一个要复制的数组元素的数目int arr1[] {0,1,2,3,4,5};int arr2[] {0,10,20,30,40,50};System.arraycopy(arr1,0,arr2,1,2);//结果为arr2 [0,0,1,30,40,50];2、第二个问题我们只需要声明为 Object 类型的数组就可以了。完整代码如下package com.ys.collection;public class MyArrayList {//用于存储数据private transient Object[] data null;//集合的元素个数private int size 0;//定义一个常量为 10.(后面用于定义默认的集合大小)private static final int DEFAULT_CAPACITY 10;/**** 有参构造函数* 指定数组的大小* param length*/public MyArrayList(int initialCapacity){if(initialCapacity 0){throw new IllegalArgumentException(非法的集合初始容量值 Illegal Capacity: initialCapacity);}else{//实例化数组this.data new Object[initialCapacity];}}/**** 无参构造函数* 指定数组的初始大小为 10*/public MyArrayList(){this(DEFAULT_CAPACITY);}/**** 1、复制原数组并扩容一倍* 2、复制原数组并扩容一倍并在指定位置插入对象* param index* param obj*/public void checkIncrease(int index,Object obj){if(size data.length){//实例化一个新数组Object[] newData new Object[size*2];if(index -1 obj null){System.arraycopy(data, 0, newData, 0, size);}else{//将要插入索引位置前面的对象 拷贝System.arraycopy(data, index, newData, index1, size-index);}//将 newData 数组赋值给 data数组data newData;newData null;}}/**** 获取数组的大小* return*/public int getSize(){return this.size;}/**** 根据元素获得在集合中的索引* param o* return*/public int indexOf(Object o) {if (o null) {for (int i 0; i data.length; i)if (data[i]null)return i;} else {for (int i 0; i data.length; i)if (o.equals(data[i]))return i;}return -1;}/**** 在尾部添加元素* param obj* return*/public boolean add(Object obj){//检查是否需要扩容checkIncrease(-1, null);data[size] obj;return true;}/*** 判断给定索引是否越界* param index* return*/public boolean checkIndexOut(int index){if(index size || index 0){throw new IndexOutOfBoundsException(指定的索引越界集合大小为:size,您指定的索引大小为:index);}return true;}public boolean add(int index,Object obj){//如果给定索引长度刚好等于原数组长度那么直接在尾部添加进去if(index size){add(obj);}//checkIndexOut()如果不抛异常默认 index size,且 index 0else if(checkIndexOut(index)){if(size data.length){System.arraycopy(data, index, data, index1, size-index);data[index] obj;}else{//需要扩容checkIncrease(index, obj);}size;}return true;}/**** 根据索引获得元素* param index* return*/public Object get(int index){checkIndexOut(index);return data[index];}/**** 删除所有元素*/public void removeAll(){for(int i 0 ; i data.length ; i){data[i] null;}}/**** 根据索引删除元素* param index* return*/public Object remove(int index){if(index size1){throw new IndexOutOfBoundsException(指定的索引越界集合大小为:size,您指定的索引大小为:index);}else if(checkIndexOut(index)){//保存对象Object obj data[index];if(index size){data[index] null;}else{//将后边的数组向前移动一位System.arraycopy(data, index1, data, index, size-index);}size--;return obj;}return null;}/**** 删除指定的元素删除成功返回 true失败返回 false* param obj* return*/public boolean remove(Object obj){for(int i 0 ; i size ; i){if(obj.equals(data[i])){remove(i);return true;}}return false;}/**** 在指定位置修改元素通过索引修改完成后返回原数据* param index* param obj* return*/public Object change(int index,Object obj){checkIndexOut(index);Object oldObj data[index];data[index] obj;return oldObj;}/**** 查看集合中是否包含某个元素如果有返回 true没有返回 false* param obj* return*/public boolean contain(Object obj){for(int i 0 ; i data.length ; i){if(obj.equals(data[i])){return true;}}return false;}public static void main(String [] args){MyArrayList my new MyArrayList();//System.out.println(my.data.length);my.add(0,3);//System.out.println(my.getSize());my.add(0,4);//System.out.println(my.getSize());my.add(0,5);//my.removeAll();//my.remove(2);//System.out.println(my.get(2));System.out.println(my.indexOf(null));System.out.println(my.contain(2));for(int i 0 ; i my.data.length ; i){System.out.println(my.data[i]);}}}
http://www.pierceye.com/news/637141/

相关文章:

  • 网上网站怎么做织梦网站模块
  • 怎么新建自己的网站百度广告推广费用
  • 北京 科技网站建设上海短视频推广公司
  • 帮别人做网站哪里可以接单大型网站开发团队的美工需要什么工作经验和教育背景及薪酬
  • 网站开发工程师社交哔哩哔哩网页版入口2023在线观看
  • 凡客 网站设计wordpress也没
  • 深圳的网站建设公司排名电话外呼系统呼叫中心系统
  • 2022没封的网站免费的闵行区网站建设
  • 网站域名做入什么科目网络营销的主要内容是什么
  • 网站平面模板网站建设招标模板
  • 网站系统升级需要多久渐变网站
  • 网站建设数据库代码做煤的网站app
  • 做家电维修网站能接到单吗十大赚钱小程序
  • 手机网站表单页面制作小游戏网站审核怎么做
  • 浅谈高校门户网站建设的规范标准wordpress改变文章页宽度
  • 做网站必须得ipc支部网站建设
  • 受欢迎的医疗网站建设常德网站开发哪家好
  • 小区服务网站怎么做常州网站制作哪家好
  • 全国各大网站网站制度建设情况
  • 两学一做网站视频软文广告是什么意思
  • 网站等级保护如何做谷歌推广方案
  • 哪些网站做免费送东西的广告nas怎么做网站服务器
  • 网站开发用什么百度一下首页官网百度
  • 上海做saas平台网站的公司商城网站程序
  • 最好的免费建站网站做设计接私活的网站
  • 有帮忙做幻灯片的网站么济宁网站开发公司
  • 网站开发技术 主流官网铺设
  • 贵阳网站建设钟鼎网络江门网站建设套餐
  • 263企业邮箱自动回复seo技巧与技术
  • 昆明响应式网站怎么做最火的视频网站