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

236. Java 集合 - 使用索引访问 List 元素

文章目录

  • 236. Java 集合 - 使用索引访问 List 元素
  • 🎯 通过索引访问和操作单个元素
  • 🔥 示例讲解
  • 🔎 查找元素在 List 中的位置
      • 示例
  • 🛠️ 获取子列表(`subList`)
      • 示例
  • 🚀 在指定位置插入一个集合
      • 示例
  • 📚 小结

236. Java 集合 - 使用索引访问 List 元素

List 接口中,除了继承 Collection 的基本功能外,还**新增了一套基于索引(index)**的方法,让我们能更灵活、精准地操作元素。


🎯 通过索引访问和操作单个元素

方法签名作用
add(int index, E element)在指定位置插入元素,后续元素索引自动后移
get(int index)获取指定索引位置的元素
set(int index, E element)替换指定索引位置的元素
remove(int index)移除指定索引位置的元素,后续元素索引前移

⚠️ 注意:
所有这些方法都要求索引必须是合法的范围0 <= index <= size-1)。
如果索引非法,将抛出 IndexOutOfBoundsException 异常!


🔥 示例讲解

import java.util.ArrayList;
import java.util.List;public class ListAccessExample {public static void main(String[] args) {List<String> names = new ArrayList<>(List.of("Alice", "Bob", "Charlie"));// 获取元素System.out.println("Element at index 1: " + names.get(1)); // Bob// 替换元素names.set(1, "Barbara");System.out.println("After set: " + names); // [Alice, Barbara, Charlie]// 插入元素names.add(1, "Brian");System.out.println("After add: " + names); // [Alice, Brian, Barbara, Charlie]// 移除元素names.remove(2);System.out.println("After remove: " + names); // [Alice, Brian, Charlie]}
}

🖨️ 输出

Element at index 1: Bob
After set: [Alice, Barbara, Charlie]
After add: [Alice, Brian, Barbara, Charlie]
After remove: [Alice, Brian, Charlie]

🔎 查找元素在 List 中的位置

有时我们需要知道某个元素在 List 中的位置索引,可以使用以下方法:

方法签名作用
indexOf(Object o)返回元素第一次出现的索引,找不到返回 -1
lastIndexOf(Object o)返回元素最后一次出现的索引,找不到返回 -1

示例

List<String> colors = List.of("Red", "Green", "Blue", "Green");System.out.println(colors.indexOf("Green"));     // 1
System.out.println(colors.lastIndexOf("Green")); // 3
System.out.println(colors.indexOf("Yellow"));    // -1

🛠️ 获取子列表(subList

  • 方法签名:subList(int fromIndex, int toIndex)
  • 返回的是原列表的一个视图(view)不是新复制出来的列表
  • 任何对子列表的修改,都会同步影响到原列表,反之亦然。

⚠️ 注意:

  • fromIndex包含的起点索引
  • toIndex不包含的终点索引
  • 索引非法时,抛出 IndexOutOfBoundsException

示例

import java.util.ArrayList;
import java.util.List;public class SubListExample {public static void main(String[] args) {List<String> numbers = new ArrayList<>(List.of("0", "1", "2", "3", "4", "5"));System.out.println("Original list: " + numbers);// 清除索引2(含)到索引5(不含)之间的元素,即 "2", "3", "4"numbers.subList(2, 5).clear();System.out.println("After subList clear: " + numbers);}
}

🖨️ 输出

Original list: [0, 1, 2, 3, 4, 5]
After subList clear: [0, 1, 5]

🚀 在指定位置插入一个集合

有时需要一次性插入多个元素,可以使用:

  • 方法签名:addAll(int index, Collection<? extends E> c)

这个方法会从指定位置开始,依次插入集合中的所有元素!

示例

import java.util.ArrayList;
import java.util.List;public class AddAllExample {public static void main(String[] args) {List<String> list = new ArrayList<>(List.of("A", "B", "F"));List<String> newElements = List.of("C", "D", "E");list.addAll(2, newElements);System.out.println(list); // [A, B, C, D, E, F]}
}

📚 小结

操作方法
按索引访问元素get(index)
替换元素set(index, element)
插入元素add(index, element)
移除元素remove(index)
批量插入集合addAll(index, collection)
获取元素位置索引indexOf(element), lastIndexOf(element)
获取子列表subList(fromIndex, toIndex)

一句话总结

👉 “List 给了你像数组一样按位置操作元素的能力,同时保留了 Collection 的灵活性!”

http://www.dtcms.com/a/596437.html

相关文章:

  • 天河网站建设哪家强华为企业邮箱
  • 基于Java的电影管理系统的设计与实现
  • C#初级面试题5、拆箱和装箱
  • 如何判断企业是否需要 IAM ?数字化转型中的权限治理自测
  • CSP-J教程——第一阶段——第六课:程序流程控制 - 循环结构(一)for循环
  • 【C++基础与提高】第二章:C++数据类型系统——构建程序的基础砖石
  • 【每天一个知识点】CAG:Context-Augmented Generation
  • 《Linux系统编程之系统导论》【冯诺依曼体系结构 + 操作系统基本概述】
  • 第23天python内容
  • 5.2、Python-字符串的编码和解码
  • 美容院网站源码网站流量下降的原因
  • FreeRTOS 学习:(十七)“外部中断”和“内核中断”的差异,引入 FreeRTOS 中断管理
  • CodeBuddy AI IDE :Skills 模式
  • 大模型学习计划(按周规划)
  • 绥中网站建设分类信息网网站500
  • k8s 部署MySQL 数据持久化
  • Quantinuum 发布新型量子计算机“Helios“
  • ubuntu/kali安装k8s
  • 开源 Objective-C IOS 应用开发(二)Xcode安装
  • 【论文阅读】Gradient Guidance for Diffusion Models:An Optimization Perspective
  • WebSocket调试工具(html),用于调试WebSocket链接是否畅通
  • Springboot3.X+security6.5+jdk21
  • 中文企业网站设计欣赏宁波网站建设方案联系方式
  • Vue2 入门到实战(day2):计算属性、监视属性、样式绑定与条件渲染(附代码案例)
  • C语言位运算深度应用:嵌入式硬件寄存器控制与低功耗优化实践
  • 深圳建立网站营销用动易建设网站教程
  • 京东后端架构技术,Pipline 设计 解决复杂查询逻辑
  • 《STM32 江湖 SPI 双绝:硬件外设与软件模拟的深度解析》
  • Docker学习笔记---day002
  • F280049C学习笔记之X-BAR