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

Java复习Day21

Java集合类框架

1. ArrayList

概述

  • Collection:List和Set的父接口,定义了集合共用的方法
  • List:有序且元素可重复的接口
  • ArrayList:List的实现类,底层采用数组结构

遍历方式

支持多种循环遍历方式

常用方法

  • add(Object obj):在集合末尾添加元素,返回boolean值表示是否成功
  • add(int index,Object obj):在指定索引位置前插入元素
  • size():获取集合元素数量
  • isEmpty():判断集合是否为空
  • clear():清空集合所有元素
  • addAll(Collection c):添加另一个集合的元素(需泛型相同)
  • addAll(int index,Collection c):在指定位置前添加另一个集合的元素
  • remove(int index):移除指定位置的元素并返回该元素
  • remove(Object obj):移除指定的元素(只移除第一个匹配项),返回boolean值表示是否成功
  • removeAll(Collection c):移除当前集合中与参数集合相同的所有元素
  • retainAll(Collection c):保留当前集合中与参数集合相同的元素
  • contains(Object o):判断集合是否包含指定元素
  • containsAll(Collection c):判断是否包含参数集合的所有元素
  • toArray():返回包含所有元素的对象数组(正序)
  • indexOf(Object):返回元素首次出现的索引
  • lastIndexOf(Object):返回元素最后一次出现的索引
  • subList(int from,int to):截取集合(包含from,不包含to),返回新List
  • iterator():获取集合迭代器
  • listIterator():获取List专用迭代器
  • set(int index,Object obj):替换指定位置的元素

2. Iterator和ListIterator比较

区别

  1. 适用范围
    • Iterator:可遍历List和Set
    • ListIterator:仅能遍历List
  2. 遍历方向
    • Iterator:单向(向后)
    • ListIterator:双向(向前/向后)
  3. 继承关系
    • ListIterator继承Iterator并扩展了新方法

常用方法

  • add(E e):在迭代器当前位置前插入元素
  • hasNext():判断是否存在后续元素
  • next():返回下一个元素
  • nextIndex():返回下一个元素的索引
  • hasPrevious():判断是否存在前驱元素
  • previous():返回前一个元素
  • previousIndex():返回前一个元素的索引
  • set(E e):替换当前迭代位置的元素

3. remove操作注意事项

  • 循环处理原则:集合增删操作必须使用迭代器,不能使用foreach
  • 特例情况:foreach仅能安全删除倒数第二个元素
  • 实现原理:foreach底层通过迭代器实现
  • 迭代器操作步骤
    1. iterator.hasNext()
    2. item=iterator.next()

(包含迭代器删除操作的源码实现)

相关文章:

  • 常用 Linux 命令---服务器开发和运维相关命令
  • JAVA网络编程——socket套接字的介绍下(详细)
  • 互联网大厂Java求职面试:AI与云原生架构实战解析
  • 深度学习---注意力机制(Attention Mechanism)
  • 自动化测试常见函数(下篇)
  • Golang | 代理模式
  • Spring Boot项目中实现单点登录(SSO)完整指南
  • Python爬虫第22节- 结合Selenium识别滑动验证码实战
  • 算法刷题记录:滑动窗口经典题目解析
  • 我们来学mysql -- 输出一份“数据备份还原”sh脚本
  • Mac M1编译OpenCV获取libopencv_java490.dylib文件
  • webpack的安装及其后序部分
  • 基于 HEC-RAS 与 ArcGIS 的洪水危险性评估技术— 从地形分析到淹没模拟的全流程实践
  • Python爬虫(40)基于Selenium与ScrapyRT构建高并发动态网页爬虫架构:原理、实现与性能优化
  • (增强)基于sqlite、mysql、redis的消息存储
  • 打卡第38天
  • vue3+vite+amfe-flexible+postcss-pxtorem 实现全分辨率自适应
  • 文件上传绕过方法总结
  • 3分钟学会跨浏览器富文本编辑器开发:精准光标定位+内容插入(附完整代码)
  • 5.27 打卡
  • 软件公司都是帮别人做网站么/网站seo排名公司
  • 家电网站建设费用/seo排名点击 seo查询
  • 搜索引擎优化中的步骤包括/整站优化
  • 中国建设银行个人登录网站/goole官网
  • wordpress数据库替换网址/seo需要懂代码吗
  • 广东省建设厅官方网站多少钱/互联网营销的方法有哪些