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

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()

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

http://www.xdnf.cn/news/9496.html

相关文章:

  • 立体匹配视差图上色代码
  • OC—UI学习-1
  • GoldenDB管理节点zk部署
  • JavaScript- 4.2 DOM--定位元素
  • 《以撒的结合:四魂》桌游完全解析!
  • 说说线程有几种创建方式
  • 如何将通话记录从Android传输到Android
  • Tomcat- AJP协议文件读取/命令执行漏洞(幽灵猫复现)详细步骤
  • Linux的交换区
  • 《自动驾驶轨迹规划实战:Lattice Planner实现避障路径生成(附可运行Python代码)》—— 零基础实现基于离散优化的避障路径规划
  • 亚古数据:查询BVI(英属维尔京群岛)公司可以获取到什么信息和文件?
  • Ubuntu系统rsyslog日志突然占用磁盘空间超大怎么办?
  • 如何使用服务器搭建邮局系统?
  • MySQL 数据库备份与恢复利器:Percona XtraBackup 详解
  • MySQL强化关键_017_索引
  • 进程的控制和调度上
  • 2tensorf
  • ElectronBot复刻-电路测试篇
  • 数据分析与应用-----使用scikit-learn构建模型
  • 跑步机的控制面板英文的意思
  • 财政票据查验接口功能解析-接口实践-医疗票据管理
  • SSM 框架深度整合实战:从零构建企业级 Java 应用
  • 华为OD最新机试真题-反转每对括号间的子串-OD统一考试(B卷)
  • Vue 3 的 <script setup> 语法糖(持续更新)
  • 尚硅谷redis7 58-62 主从复制之一主二仆
  • 【前端】JS引擎 v.s. 正则表达式引擎
  • 创建型设计模式之Singleton(单例)设计模式
  • 力扣热题100(附刷题表版)
  • 【西方哲学-0】西哲思维导图mermaid格式
  • 离线场景下扫描与修复系统缺失补丁解决方案