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

怎么提高网站收录量网站制作规划设计内容

怎么提高网站收录量,网站制作规划设计内容,网站建设】,广西壮族自治区市场监督管理局了解 ArrayList 在 Java 中常用集合类之间的关系如下图所示#xff1a; 从图中可以看出 ArrayList 是实现了 List 接口#xff0c;并是一个可扩容数组#xff08;动态数组#xff09;#xff0c;它的内部是基于数组实现的。它的源码定义如下#xff1a; public class A…了解 ArrayList 在 Java 中常用集合类之间的关系如下图所示 从图中可以看出 ArrayList 是实现了 List 接口并是一个可扩容数组动态数组它的内部是基于数组实现的。它的源码定义如下 public class ArrayListE extends AbstractListEimplements ListE, RandomAccess, Cloneable, java.io.Serializable{ }ArrayList 可以实现所有可选择的列表操作允许所有的元素包括空值。ArrayList 还提供了内部存储 List 的方法它能够完全替代Vector只有一点例外ArrayList 不是线程安全的容器。 ArrayList 有一个容量的概念这个数组的容量size就是 List 用来存储元素的容量。 ArrayList 不是线程安全的容器如果多个线程中至少有两个线程修改了 ArrayList 的结构的话就会导致线程安全问题作为替代条件可以使用线程安全的 List应使用 Collections.synchronizedList List list Collections.synchronizedList(new ArrayList());ArrayList 具有 fail-fast 快速失败机制能够对 ArrayList 作出失败检测。当在迭代集合的过程中该集合在结构上发生改变的时候就有可能会发生 fail-fast即抛出ConcurrentModificationException异常。 通过源码分析 ArrayList 的扩容机制 当使用空参构造器进行创建 ArrayList 的时候实际上给 elementData 初始化赋值的是一个空数组 {} //数组列表的大小包含的元素数,初始化为 0 private int size; //存储数组列表元素的数组缓冲区。 transient Object[] elementData; //默认初始化容量为10 private static final int DEFAULT_CAPACITY 10; //默认空数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {}; //使用空参构造器创建 ArrayList 时实际上初始化赋值的是一个空数组 public ArrayList() {this.elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }当首次调用 add(E e) 方法进行添加第一个元素时会首先调用 ensureCapacityInternal 方法传入参数 1 //将指定的元素追加到此列表的末尾 public boolean add(E e) {ensureCapacityInternal(size 1); // Increments modCount!!elementData[size] e;return true; }在 ensureCapacityInternal 方法中会调用 calculateCapacity 方法传入参数为 elementData,1 private void ensureCapacityInternal(int minCapacity) {ensureExplicitCapacity(calculateCapacity(elementData, minCapacity)); }在 calculateCapacity 方法中判断 elementData 是否为空数组由于是初始化赋值的是一个空数组 {}所以符合 if 条件返回 (DEFAULT_CAPACITY, minCapacity)【10,1】 中大的那个此时返回 10 private static int calculateCapacity(Object[] elementData, int minCapacity) {if (elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {return Math.max(DEFAULT_CAPACITY, minCapacity);}return minCapacity; }接着返回到 ensureCapacityInternal 方法中继续调用 ensureExplicitCapacity 方法验证是否需要扩容传入参数 10 此时 minCapacity10,elementData.length0 相减小于0执行 grow 方法扩容传入参数 10当添加第2-10个元素时不会执行 grow 方法一直到数组已经满元素时才执行 grow 方法扩容 private void ensureExplicitCapacity(int minCapacity) {modCount;// overflow-conscious codeif (minCapacity - elementData.length 0)grow(minCapacity); }在 grow 方法中此时 minCapacity10,oldCapacity0,newCapacity0 符合 newCapacity - minCapacity 0 条件执行 newCapacity minCapacity; 不满足 newCapacity - MAX_ARRAY_SIZE 0 执行 Arrays.copyOf() 方法将 elementData 指向的数组中的元素复制到新的数组中新的数组长度为 10并让 elementData 指向新的数组int newCapacity oldCapacity (oldCapacity 1) 完成1.5倍扩容。 private void grow(int minCapacity) {// overflow-conscious codeint oldCapacity elementData.length;int newCapacity oldCapacity (oldCapacity 1);if (newCapacity - minCapacity 0)newCapacity minCapacity;if (newCapacity - MAX_ARRAY_SIZE 0)newCapacity hugeCapacity(minCapacity);// minCapacity is usually close to size, so this is a win:elementData Arrays.copyOf(elementData, newCapacity); }
http://www.w-s-a.com/news/206494/

相关文章:

  • 好看的单页面网站模板免费下载手机网站经典案例
  • 优秀网站建设平台建筑模板工厂价格尺寸
  • 合肥微信网站建设旅游景区网站模板
  • 一个只做百合的网站wordpress文章和博客的区别
  • 编写网站策划方案网站哪里有
  • 网站做得好的公司国家防疫政策最新调整
  • 设计优秀的企业网站做行测的网站
  • 提供做网站公司有哪些关键词优化诊断
  • 建站合肥网络公司seo免费建手机商城网站吗
  • 设计师投资做项目网站外贸网站建设工作室
  • 无聊的网站wordpress的alt属性插件
  • 个股期权系统网站开发小清新wordpress模板
  • 全中文网站开发建筑公司企业愿景文案
  • 广州网站建设正规公司建设银行信用卡中心网站
  • 哪个网站是专门做封面素材怎么制作app平台
  • 网站开发 平均工资商标注册在哪个部门申请
  • 做外贸需要自己的网站吗营销型网站建设市场分析
  • 绍兴网站制作推广wordpress 无法自动升级
  • 阿里云建站数据库用什么app制作开发费用多少
  • 中国住房和城乡建设部网站资质查询中小开网站
  • 交易所网站开发水果营销软文
  • 石家庄有什么好玩的地方2017织梦网站怎么做seo
  • wordpress项目插件seo的含义
  • 网站平台建设的作用电影宣传类网页界面设计
  • 户外网站模板国外优秀的平面设计网站
  • 家政网站怎么做网站机房建设方案
  • 学校网站建设运行情况2022年近期舆情热点话题
  • 做淘宝需要知道什么网站吗有没有做软件的网站
  • 安丘网站建设制作做网站和微信小程序
  • 京东网站的建设与发展前景黑龙江建设网官网登陆