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

Java高级Day19-List、ArrayList

64.List接口和常用方法

List接口基本介绍

  1. List集合类中元素有序(即添加顺序和取出顺序一致)、且可以重复

  2. List集合中的每个元素都有其对应的顺序索引,即支持索引

  3. List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素

List常用方法:

//1.void add(int index,Object ele):在index位置插入ele元素,不写默认添加在最后
list.add("WOW");
list.add(1,"WOW")
//2.boolean addAll(int index,Collection eles):从index位置开始将eles中的所有元素添加进来
list.addAll(1,list2);
//3.Object get(int index):获取指定index位置的元素
list.get(1);
//4.int indexOf(Object obj):返回obj在集合中首次出现的位置
System.out.printl(list.indexOf("tom"));
//5.int lastIndexOf(Object obj):返回obj在当前集合中最后一次出现的位置
System.out.printl(list.indexOf("tom"));
//6.Obejct remove(int index):一处指定index位置的元素,并返回此元素
list.remove(0);
//7.Object set(int index,Object ele):设置指定index位置的元素为ele,相当于是替换
list.set(1,"Jack")
//8.List subList(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的子集合
List returnlist = list.subList(0,2);//范围:前闭后开

65.List的三种遍历方式

//方式1:使用iterator
Iterator iterator = col.iterator();while(iterator.hasNext()){Object obj = iterator.next();}
​
//方式2:使用增强for
for(Object objc:col){}
​
//方式3:使用普通for
for(int 1 = 0;i < list.size();i++){Object object = list.get(i);System.out.println(objcet);
}

66.ArrayList

注意事项:

  1. permits all elements,including null,ArrayList可以加入null,并且多个

  2. ArrayList是由数组来实现数据存储的

  3. ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高)

ArrayList扩容机制:

  1. ArrayList中维护了一个Objcet类型的数组elementData.transient Object[] elementData;

transient:表示属性不会被序列化

  1. 当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍

  2. 如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • A股探底强势反攻,量价齐声太漂亮
  • 基于SpringBoot+Vue的来访管理系统(带1w+文档)
  • 支持向量机(SVM)预测模型及其Python和MATLAB实现
  • Postman:API开发与测试的强大伴侣
  • 最低工资标准数据(2001-2023年不等)、省市县,整理好的面板数据(excel格式)
  • iOS 18:照片应用添加“恢复”相册,可恢复数据库损坏所丢失照片!
  • vite项目构建配置
  • 【C语言】柔性数组(打开前所未见的大门)
  • 智慧叉车丨智能AI守护每一次叉车作业
  • streamlit安装成功
  • 使用Qt3D绘制机械手场景
  • 论文阅读:基于生物神经元的模拟游戏世界感知与学习
  • 详细介绍Linux iftop 的结果如何查看
  • 昇思25天学习打卡营第XX天|Diffusion扩散模型
  • log4j2漏洞练习(未完成)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 78. Subsets
  • CAP 一致性协议及应用解析
  • Create React App 使用
  • css选择器
  • java第三方包学习之lombok
  • JS变量作用域
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • vue 个人积累(使用工具,组件)
  • 大主子表关联的性能优化方法
  • 前嗅ForeSpider教程:创建模板
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 我们雇佣了一只大猴子...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • ######## golang各章节终篇索引 ########
  • #{}和${}的区别?
  • #预处理和函数的对比以及条件编译
  • (10)STL算法之搜索(二) 二分查找
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (黑马C++)L06 重载与继承
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)德国人的记事本
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • ./configure、make、make install 命令
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net 获取url的方法
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...