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

重庆网站建设 吧网站集约化建设较好的城市

重庆网站建设 吧,网站集约化建设较好的城市,更新标签wordpress,徐州铜山区三盛开发公司ArrayList 在Java中#xff0c;ArrayList是java.util包中的一个类#xff0c;它实现了List接口#xff0c;是一个动态数组#xff0c;可以根据需要自动增长或缩小。下面是ArrayList的一些基本特性以及其底层原理的简要讲解#xff1a; ArrayList基本特性#xff1a; 动…ArrayList 在Java中ArrayList是java.util包中的一个类它实现了List接口是一个动态数组可以根据需要自动增长或缩小。下面是ArrayList的一些基本特性以及其底层原理的简要讲解 ArrayList基本特性 动态数组 ArrayList是一个动态数组它可以根据需要自动调整大小。 允许重复元素 ArrayList允许存储相同的元素可以包含重复的值。 随机访问 通过索引可以以常数时间复杂度进行元素的访问这是由于底层是数组实现。 不同步 ArrayList不是线程安全的如果多个线程同时访问一个ArrayList实例而至少有一个线程修改了列表结构那么它必须保持外部同步。 API boolean add(E element):将指定的元素添加到列表的末尾。void add(int index, E element):在指定的位置插入指定的元素。E get(int index)回列表中指定位置的元素。int size():返回列表中的元素数。boolean remove(Object o)从列表中删除指定的元素如果存在E remove(int index)删除列表中指定位置的元素。boolean contains(Object o)如果列表包含指定的元素则返回 true。void clear():从列表中删除所有元素。boolean isEmpty():如果列表不包含元素则返回 true。 ArrayList底层原理 基于数组 ArrayList的底层是一个数组。当你创建一个ArrayList时它会初始化一个数组来保存元素。初始时默认大小是0的数组。当添加第一个元素的时候底层会创建一个长度为10的数组 自动扩容 当元素数量超过当前数组容量时ArrayList会创建一个新的数组将元素复制到新数组中并更新引用。通常新数组的大小是原数组的1.5倍。如果一次添加多个元素1.5倍放不下则新建数组长度以实际长度为准 容量增长 ArrayList的容量增长不是按需一次性增长的而是按照一定的策略进行递增。这样可以减少频繁扩容的开销。 元素的添加和删除 在数组中添加和删除元素可能涉及到移动其他元素这可能导致性能开销。在某些情况下特别是在大量操作的情况下可能会考虑使用LinkedList因为在链表中添加和删除元素的开销较小。 // 示例代码 import java.util.ArrayList;public class ArrayListExample {public static void main(String[] args) {// 创建ArrayListArrayListString arrayList new ArrayList();// 添加元素arrayList.add(Java);arrayList.add(Python);arrayList.add(C);// 访问元素System.out.println(First element: arrayList.get(0));// 删除元素arrayList.remove(Python);// 打印所有元素System.out.println(All elements: arrayList);} }总体而言ArrayList是一个灵活且性能良好的集合类适用于大多数元素的存储和检索场景。 LinkList LinkedList是Java集合框架中的另一种实现List接口的类它基于链表数据结构。相比于ArrayListLinkedList在一些操作上有不同的性能特点。 LinkedList的基本特性 基于链表 LinkedList使用双向链表实现每个元素都包含一个指向前一个元素和一个指向后一个元素的引用。这使得在链表中插入和删除元素更为高效因为不需要移动其他元素。 不适合随机访问 由于是链表结构LinkedList在随机访问元素时效率较低。访问某个特定位置的元素需要从头或尾开始遍历链表。 元素添加和删除高效 在链表中插入和删除元素的操作相对较快因为只需要更新相邻元素的引用而不需要像数组一样移动大量元素。 不同步 LinkedList也是非线程安全的如果需要在多线程环境中使用需要进行外部同步。 API boolean add(E element)将指定的元素添加到列表的末尾。void add(int index, E element)在指定的位置插入指定的元素E get(int index):返回列表中指定位置的元素E getFirst()返回列表中的第一个元素E getLast():返回列表中的最后一个元素。boolean remove(Object o)从列表中删除指定的元素如果存在E remove(int index):删除列表中指定位置的元素。E removeFirst():删除并返回列表的第一个元素E removeLast()删除并返回列表的最后一个元素boolean contains(Object o)如果列表包含指定的元素则返回 true。void clear()从列表中删除所有元素E set(int index, E element):用指定的元素替换列表中指定位置的元素。boolean isEmpty():如果列表不包含元素则返回 true。int indexOf(Object o)返回列表中第一次出现的指定元素的索引如果列表不包含此元素则返回boolean offer(E e)将指定的元素添加到列表的末尾队尾。E poll():检索并删除列表的头部队首元素。void push(E e):将元素推入列表所表示的堆栈在列表的头部。E pop():从列表所表示的堆栈中弹出第一个元素。Object[] toArray():返回包含列表中所有元素的数组。 示例代码 import java.util.LinkedList;public class LinkedListExample {public static void main(String[] args) {// 创建LinkedListLinkedListString linkedList new LinkedList();// 添加元素linkedList.add(Java);linkedList.add(Python);linkedList.add(C);// 访问元素System.out.println(First element: linkedList.getFirst());// 删除元素linkedList.remove(Python);// 打印所有元素System.out.println(All elements: linkedList);} }适用场景 当需要频繁执行插入和删除操作时特别是在列表的中间位置。当对列表进行迭代操作而不是随机访问时。 总体而言LinkedList和ArrayList各有优势选择取决于具体的使用场景。ArrayList适用于随机访问和大量元素的存储而LinkedList适用于频繁插入和删除的场景。
http://www.hkea.cn/news/14528623/

相关文章:

  • 昆明企业网站建设公司网站建设dw站点建设
  • 一般做外单的有哪些网站wordpress牛站
  • 韶关做网站公司建设网站案例
  • 建网站平台 优帮云国内效果图公司排名
  • 连云港公司网站优化服务石家庄网站推广报价
  • 毕业设计做音乐网站一个网站项目多少钱
  • 国外平面设计网站有哪些龙华做棋牌网站建设
  • 徐州市建设银行网站蓝色脚手架织梦企业网站模板
  • 网站编辑难做吗网站模板怎么样
  • 新云网站模板浙江金华市建设局网站
  • 软件介绍网站模板大连云app官方下载
  • 公司旅游视频网站模板免费下载wordpress列表分页代码
  • 品牌网站设计企业服务企业网站建设公司电话西安
  • WordPress插件代码化科学新概念seo外链
  • 网站设计及建设合同平湖市网站建设
  • 天津外贸公司网站制作wordpress本地浏览慢
  • 河北建设集团园林网站网站推广公司
  • 网站手机客户端生成网站有图片的验证码是怎么做的
  • 苏州建设网站专业哈尔滨网站设计公司哪家更好
  • 小程序是什么时候出来的外贸seo优化
  • 网站建设思维平面设计师要学哪些软件
  • 咸鱼网站做链接wordpress自定义文章参数
  • 江苏省品牌专业建设网站上海市建设安全协会网站查询系统瘫
  • 建站宝盒怎么样公司企业策划书模板
  • 西宁网站制作 青wordpress yusi主题
  • 怎么做建设网站首页天津网站建设哪家好
  • 忻州建设厅官方网站设置 iis 网站维护中
  • 小说网站开发 项目计划书成都网站建设的定位
  • 中山seo排名优化seo网站建设技巧
  • 珠海专业的免费建站东莞高端网站定制