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

青岛金融网站建设如何提交网站地图

青岛金融网站建设,如何提交网站地图,android开发最全教程,关于网站建设的问卷调查文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类#xff0c;底层使… 文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类底层使用 Object[ ]存储适用于频繁的查找工作线程不安全 Vector 是 List 的古老实现类底层使用 Object[ ] 存储线程安全的。 2.2. Arraylist 与 LinkedList 区别? 是否保证线程安全 ArrayList 和 LinkedList 都是不同步的也就是不保证线程安全底层数据结构 Arraylist 底层使用的是 Object 数组LinkedList 底层使用的是 双向链表 数据结构JDK1.6 之前为循环链表JDK1.7 取消了循环。注意双向链表和双向循环链表的区别下面有介绍到插入和删除是否受元素位置的影响 ① ArrayList 采用数组存储所以插入和删除元素的时间复杂度受元素位置的影响。 比如执行add(E e)方法的时候 ArrayList 会默认在将指定的元素追加到此列表的末尾这种情况时间复杂度就是 O(1)。但是如果要在指定位置 i 插入和删除元素的话add(int index, E element)时间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。 ② LinkedList 采用链表存储所以对于add(E e)方法的插入删除元素时间复杂度不受元素位置的影响近似 O(1)如果是要在指定位置i插入和删除元素的话(add(int index, E element) 时间复杂度近似为o(n))因为需要先移动到指定位置再插入。是否支持快速随机访问 LinkedList 不支持高效的随机元素访问而 ArrayList 支持。快速随机访问就是通过元素的序号快速获取元素对象(对应于get(int index)方法)。内存空间占用 ArrayList 的空 间浪费主要体现在在 list 列表的结尾会预留一定的容量空间而 LinkedList 的空间花费则体现在它的每一个元素都需要消耗比 ArrayList 更多的空间因为要存放直接后继和直接前驱以及数据。 2.2.1. 补充内容:双向链表和双向循环链表 双向链表 包含两个指针一个 prev 指向前一个节点一个 next 指向后一个节点。 另外推荐一篇把双向链表讲清楚的文章https://juejin.im/post/5b5d1a9af265da0f47352f14 双向循环链表 最后一个节点的 next 指向 head而 head 的 prev 指向最后一个节点构成一个环。 2.2.2. 补充内容:RandomAccess 接口 public interface RandomAccess { }查看源码我们发现实际上 RandomAccess 接口中什么都没有定义。所以在我看来 RandomAccess 接口不过是一个标识罢了。标识什么 标识实现这个接口的类具有随机访问功能。 在 binarySearch) 方法中它要判断传入的 list 是否 RamdomAccess 的实例如果是调用indexedBinarySearch()方法如果不是那么调用iteratorBinarySearch()方法 public static Tint binarySearch(List? extends Comparable? super T list, T key) {if (list instanceof RandomAccess || list.size()BINARYSEARCH_THRESHOLD)return Collections.indexedBinarySearch(list, key);elsereturn Collections.iteratorBinarySearch(list, key);}ArrayList 实现了 RandomAccess 接口 而 LinkedList 没有实现。为什么呢我觉得还是和底层数据结构有关ArrayList 底层是数组而 LinkedList 底层是链表。数组天然支持随机访问时间复杂度为 O(1)所以称为快速随机访问。链表需要遍历到特定位置才能访问特定位置的元素时间复杂度为 O(n)所以不支持快速随机访问。ArrayList 实现了 RandomAccess 接口就表明了他具有快速随机访问功能。 RandomAccess 接口只是标识并不是说 ArrayList 实现 RandomAccess 接口才具有快速随机访问功能的 2.3 ArrayList 的扩容机制 ArrayList 是基于数组实现的动态数组它提供了一种可以动态增长和缩减的数组结构。在 ArrayList 中当数组存储的元素个数达到上限时会触发扩容操作以保证其容量能够存储更多的元素。 ArrayList 扩容机制的主要过程 在添加元素时首先会判断数组是否已满。如果已满则需要进行扩容操作扩容操作会创建一个新的大数组并将原数组中的元素全部复制到新数组中新数组的长度通常是原数组长度的 1.5 倍可以通过源码中的 DEFAULT_CAPACITY_INCREMENT 12 和 DEFAULT_CAPACITY 10 来了解扩容因子。如果指定了初始化容量那么新数组的长度就是指定的容量大小复制完元素后会将指向原数组的引用更新为指向新数组的引用。 源码分析 private void grow(int minCapacity) {// 获取当前数组容量int oldCapacity elementData.length;// 扩容因子以 1.5 倍方式进行扩容int newCapacity oldCapacity (oldCapacity 1);// 如果新容量小于 minCapacity则使用 minCapacity 作为新容量if (newCapacity - minCapacity 0)newCapacity minCapacity;// 如果新容量超出了最大容量则抛出 OutOfMemoryError 异常if (newCapacity - MAX_ARRAY_SIZE 0)newCapacity hugeCapacity(minCapacity);// 复制旧数组中的元素到新数组中elementData Arrays.copyOf(elementData, newCapacity); }由于每次扩容都需要重新进行数据复制所以过于频繁的扩容操作会导致性能损失。为避免频繁的扩容操作初始化 ArrayList 对象时可以指定其容量大小或者使用 ensureCapacity(int minCapacity) 方法预先设置其容量大小以提高效率。同时在添加大量元素时也可以使用 addAll(Collection? extends E c) 或 addAll(int index, Collection? extends E c) 方法一次性添加多个元素以减少扩容操作的次数。
http://www.w-s-a.com/news/310485/

相关文章:

  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站
  • 免费注册店铺位置sem seo什么意思
  • 建筑网站搜图电子商务网站建设渠道
  • 学校网站内容四川手机网站开发
  • 网站制作公司违法商业网站运营成本
  • 显示佣金的网站是怎么做的广告设计主要做哪些
  • 做阿里网站的分录济南seo网站排名关键词优化
  • 北京建设银行纪念钞预定官方网站wordpress中文优化版
  • 宝安做棋牌网站建设找哪家效益快创意设计师个人网站
  • 做线上网站需要多少钱系统开发板价格
  • 建筑企业登录哪个网站wordpress feed地址
  • 网站建设流程百科提升seo搜索排名
  • 杭州网站建设 巴零做销售怎么和客户聊天
  • 北京自己怎样做网站wordpress oauth2插件
  • 上海800做网站wordpress建站的好处
  • 婚纱摄影网站设计模板如何做好网站内容
  • cdn网站加速招商计划书模板ppt
  • 我在某网站网站做代理开发小程序外包
  • 设计网站国外商城网站的建设费用
  • 网站开发工作需要什么专业学做网站游戏教程
  • 电子商务网站规划 分析 设计杭州网站优化平台
  • 汕头企业自助建站系统网站后台登陆验证码无法显示
  • 宁波网站制作服务做外贸推广自己网站
  • php 微信 网站开发青岛网站互联网公司
  • 网站软件免费下载大全网站建设开发价格高吗
  • asp网站制作软件上海做网站制作
  • 福田区住房和建设局网站好搜搜索引擎