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

东莞网站建设(信科网络)代备案网站空间

东莞网站建设(信科网络),代备案网站空间,关于政协 网站建设,网站可以做动画轮播吗一、ArrayList 和 Array 的区别 ArrayList 内部基于动态数组实现#xff0c;比 Array#xff08;静态数组#xff09; 使用起来更加灵活#xff1a; ArrayList 会根据实际存储的元素动态地扩容或缩容#xff0c;而 Array 被创建之后就不能改变它的长度了。ArrayList 允许…一、ArrayList 和 Array 的区别 ArrayList 内部基于动态数组实现比 Array静态数组 使用起来更加灵活 ArrayList 会根据实际存储的元素动态地扩容或缩容而 Array 被创建之后就不能改变它的长度了。ArrayList 允许你使用泛型来确保类型安全Array 则不可以。ArrayList 中只能存储对象。对于基本类型数据需要使用其对应的包装类如 Integer、Double 等。Array 可以直接存储基本类型数据也可以存储对象。ArrayList 支持插入、删除、遍历等常见操作并且提供了丰富的 API 操作方法比如 add()、remove()等。Array 只是一个固定长度的数组只能按照下标访问其中的元素不具备动态添加、删除元素的能力。ArrayList 创建时不需要指定大小而 Array 创建时必须指定大小。 以下是两者之间的对比 ArrayList // 初始化一个 String 类型的 ArrayListArrayListString stringList new ArrayList(Arrays.asList(hello, world, !));// 添加元素到 ArrayList 中stringList.add(goodbye);System.out.println(stringList); // [hello, world, !, goodbye]// 修改 ArrayList 中的元素stringList.set(0, hi);System.out.println(stringList); // [hi, world, !, goodbye]// 删除 ArrayList 中的元素stringList.remove(0);System.out.println(stringList); // [world, !, goodbye] Array  // 初始化一个 String 类型的数组String[] stringArr new String[]{hello, world, !};// 修改数组元素的值stringArr[0] goodbye;System.out.println(Arrays.toString(stringArr)); // [goodbye, world, !]// 删除数组中的元素需要手动移动后面的元素for (int i 0; i stringArr.length - 1; i) {stringArr[i] stringArr[i 1];}stringArr[stringArr.length - 1] null;System.out.println(Arrays.toString(stringArr)); // [world, !, null] 二、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 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。LinkedList 采用链表存储所以在头尾插入或者删除元素不受元素位置的影响add(E e)、addFirst(E e)、addLast(E e)、removeFirst()、 removeLast()时间复杂度为 O(1)如果是要在指定位置 i 插入和删除元素的话add(int index, E element)remove(Object o),remove(int index) 时间复杂度为 O(n) 因为需要先移动到指定位置再插入和删除。 是否支持快速随机访问 LinkedList 不支持高效的随机元素访问而 ArrayList实现了 RandomAccess 接口 支持。快速随机访问就是通过元素的序号快速获取元素对象(对应于get(int index)方法)。内存空间占用 ArrayList 的空间浪费主要体现在在 list 列表的结尾会预留一定的容量空间而 LinkedList 的空间花费则体现在它的每一个元素都需要消耗比 ArrayList 更多的空间因为要存放直接后继和直接前驱以及数据。 我们在项目中一般是不会使用到 LinkedList 的需要用到 LinkedList 的场景几乎都可以使用 ArrayList 来代替并且性能通常会更好  补充双向链表 和 双向循环链表 双向链表 包含两个指针一个 prev 指向前一个节点一个 next 指向后一个节点。 双向循环链表 最后一个节点的 next 指向 head而 head 的 prev 指向最后一个节点构成一个环。 三、ArrayList 和 Vector  的区别 ArrayList 是 List 的主要实现类底层使用 Object[]存储适用于频繁的查找工作线程不安全 。Vector 是 List 的古老实现类底层使用Object[] 存储线程安全。 ArrayList 在内存不够时默认是扩展 50% 1 个 Vector 是默认扩展 1 倍。
http://www.dnsts.com.cn/news/109882.html

相关文章:

  • dw做网站有雪花效果私人可注册网站吗
  • 诸暨网站制作有哪些公司合伙合同网站建设协议
  • 兰州专业网站建设公司推广app违法吗
  • 网站原型设计流程1.网站建设基本流程是什么
  • 网站链群怎么做京东网页版
  • 2017年做网站好难汕头站扩建工程
  • 宁波网站设计首选荣盛网络网站运营与管理规划书
  • 惠州网站建设领头羊网站建设前台后台
  • 园区二学一做网站wordpress 读者墙不显示头像
  • 个人网站域名备案聚名网页版
  • 网站 手机版网站开发合同php做商品网站
  • 网站在线报名怎么做网站建设7
  • 做电子元器件销售什么网站好重庆信息网招聘
  • 设计网站推荐按钮的作用网站界面诊断
  • 网站从建设到上线流程定制网站开发报价单
  • 网站设计导航栏高度顺义城区网站建设
  • 成功网站建设案例博客网站怎么做
  • 网站建设公司有哪wordpress太多重定向
  • 常用的网站开发工具为什么我自己做的网站搜索不到
  • 郑州企业网站排名wordpress 获取评论id
  • 井陉矿区网站建设素材网官网
  • 南通制作网站网站建设存在不足
  • 网站优化的前景广告设计基础知识
  • 建立网站的目录结构时最好的做法是青岛红岛做网站
  • 教育网站搭建怎样用模板建一个网站
  • 龙井网站建设网页特效设计
  • 天津住房与城乡建设厅网站首页建设一个官方网站的费用
  • 做淘客推广用什么网站好广西建设网注册中心
  • 网站建设 app开发 图片做推广用那个网站吗
  • 不规则网站模板建设网站外贸