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

Java进阶之单列集合List接口下的通用方法

        Java 集合框架中的 List 接口是最常用的集合类型之一,它代表一个有序的集合(序列)。它允许元素重复,并通过索引精确控制每个元素插入的位置,并可以通过索引访问元素。

一.List 接口概述

1.List 接口的核心概念

  • 有序集合 (Ordered Collection): 这是 List 最根本的特性。它维护元素的特定插入顺序。当你向 List 中添加元素时,每个元素都会被放置在一个特定的位置(索引)。你可以通过元素的整数索引(从 0 开始)精确地访问、搜索、插入或删除该位置的元素。存和取的元素顺序一致。
  • 可重复元素 (Allows Duplicates): List 允许存储重复的元素。同一个对象可以在列表中多次出现。
  • 继承自 Collection: List 接口继承自 Collection 接口,因此它包含了 Collection 的所有基本操作(添加、删除、遍历、判断包含等),并在此基础上添加了大量基于索引的操作
  • 允许 null 元素: 大多数 List 的实现(如 ArrayListLinkedList)允许存储 null 元素。

2.List集合的特有方法

方法名说明
add(int index, E e)在指定位置插入元素
get(int index)返回指定位置的元素
set(int index, E e)替换指定位置的元素
remove(int index)删除指定位置的元素
indexOf(Object o)返回元素首次出现的索引(未找到返回-1)
lastIndexOf(Object o)返回元素最后一次出现的索引
size()返回列表中元素的数量

完整示例代码:

import java.util.ArrayList;
import java.util.List;public class ListOperations {public static void main(String[] args) {// 初始化列表List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("cherry");list.add("date");list.add("elderberry");// 1. 在索引1插入"grape"list.add(1, "grape");System.out.println("1. 插入 grap: " + list);// 2. 在索引3插入"fig"list.add(3, "fig");System.out.println("2. 插入 fig: " + list);// 3. 替换索引2为"kiwi"list.set(2, "kiwi");System.out.println("3. 替换 kiwi: " + list);// 4. 删除索引4list.remove(4);System.out.println("4. 删除索引4: " + list);// 5. 查找"date"的索引int indexOfDate = list.indexOf("date");System.out.println("5. date的索引: " + indexOfDate + " | 当前列表: " + list);// 6. 在索引0插入"apple"list.add(0, "apple");System.out.println("6. 头部插入apple: " + list);// 7. 查找最后一个"apple"的索引int lastIndexOfApple = list.lastIndexOf("apple");System.out.println("7. 最后一个apple的索引: " + lastIndexOfApple + " | 当前列表: " + list);// 8. 输出列表大小int size = list.size();System.out.println("8. 列表大小: " + size);// 最终列表System.out.println("最终列表: " + list);}
}

运行结果:

注意事项:

注意在使用remove时有两个重载函数,一个是按照索引删除,一个是按照对象删除。

public class test {public static void main(String[] args) {Collection<Integer> c = new ArrayList<Integer>();c.add(1);c.add(2);c.add(3);System.out.println(c);c.remove(1);System.out.println(c);List<Integer> c1 = new ArrayList<Integer>();c1.add(1);c1.add(2);c1.add(3);boolean remove1 = c1.remove((Integer) 2);Integer remove = c1.remove(1);System.out.println(c1);}
}

3.List集合的遍历方式

        在Java中,遍历List集合主要有以下五种方式,每种方式都有其适用场景,以下只详细介绍常见的两种,因为List接口继承于单列集合接口Collection接口,所以所有的单列集合都能使用的迭代器等三种遍历方式在List中也可以使用,大家可以看博主前几期的博文Java学习Collection单列集合中的三种通用遍历方法,这三种方法这里只做代码展示。

(1). 普通for循环

for (int i = 0; i < list.size(); i++) {String item = list.get(i);System.out.println(item);
}

特点

  • 通过索引访问元素
  • 适合ArrayList等随机访问集合
  • 不适用于LinkedListget(i)效率低)
  • 可在循环内修改集合(需谨慎)

(2).ListIterator(双向迭代器)

ListIterator<String> lit = list.listIterator();
while (lit.hasNext()) {String item = lit.next();System.out.println(item);
}// 反向遍历(需先正向遍历到末尾)
while (lit.hasPrevious()) {String item = lit.previous();System.out.println(item);
}

特点

  • 支持双向遍历
  • 可添加/替换元素(lit.add()lit.set()
  • 可安全删除元素(lit.remove()

(3).单列集合的三种方式

迭代器:

Iterator<String> it = list.iterator();
while (it.hasNext()) {String item = it.next();System.out.println(item);
}

增强for循环(foreach):

for (String item : list) {System.out.println(item);
}

 forEach()方法--lambda表达式

list.forEach(item -> System.out.println(item));
// 方法引用简化
list.forEach(System.out::println);

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

相关文章:

  • Serper注册无反应
  • spring的知识点:容器、AOP、事物
  • C语言中级_宏定义传参、volatile和extern关键字、字符串数组和字符串函数
  • Python Gradio 写的-文本情感分析小软件 (不用Html+css+js 可写出网页来)
  • Mac屏幕取色不准?探究原理和换算规则
  • STM32学习笔记6-TIM-2输出比较功能
  • PyQt5技术栈简述
  • SpringBoot日志关系
  • react之React.cloneElement()
  • 数据结构初阶(7)树 二叉树
  • Spring——Spring懒加载设计使用场景
  • try/catch/throw 简明指南
  • 零拷贝技术:提升传统I/O的性能
  • 理解协议最大传输单元(MTU)和TCP 最大报文段长度(MSS)
  • 【ros_humble】3.人脸检测python(服务通讯和参数通讯介绍)
  • jenkins-飞书通知机制
  • mac安装node.js
  • 前端懒加载技术全面解析
  • Yi大模型-零一万物发布的开源大模型
  • [FOC电机控制]霍尔传感器于角度问题
  • Docker容器部署Tomcat线上商城
  • golang的二维数组
  • AI工具在数据质量管理中的应用
  • windows10 ubuntu 24.04 双系统 安装教程
  • Ubuntu和Windows系统Kafka配置方法
  • Linux的软件防火墙iptables
  • 机器翻译实战:使用Gensim训练中英文词向量模型及可视化
  • QML开发:高级布局组件
  • 【Python 语法糖小火锅 · 第 1 涮】
  • 论文阅读 2025-8-3 [FaceXformer, RadGPT , Uni-CoT]