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

Java List操作与遍历全攻略

Java List常见方法

List是Java集合框架中最常用的接口之一,提供了多种操作元素的方法。以下是List常见的方法。

添加元素

List<String> list = new ArrayList<>();
list.add("Apple"); // 添加单个元素
list.add(1, "Banana"); // 在指定位置插入元素

删除元素

list.remove("Apple"); // 删除指定元素
list.remove(0); // 删除指定位置的元素

获取元素

String fruit = list.get(0); // 获取指定位置的元素
int size = list.size(); // 获取列表大小

检查元素

boolean contains = list.contains("Banana"); // 检查是否包含某元素
int index = list.indexOf("Banana"); // 获取元素索引

修改元素

list.set(0, "Orange"); // 修改指定位置的元素

清空列表

list.clear(); // 删除所有元素

List的五种遍历方式

1. 使用for循环

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

2. 使用增强for循环

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

3. 使用Iterator

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

4. 使用ListIterator(支持双向遍历)

ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {String item = listIterator.next();System.out.println(item);
}

5. 使用Java 8的forEach方法

list.forEach(item -> System.out.println(item));

完整示例

import java.util.*;public class ListExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");// 五种遍历方式System.out.println("1. for循环遍历:");for (int i = 0; i < fruits.size(); i++) {System.out.println(fruits.get(i));}System.out.println("\n2. 增强for循环遍历:");for (String fruit : fruits) {System.out.println(fruit);}System.out.println("\n3. Iterator遍历:");Iterator<String> iterator = fruits.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}System.out.println("\n4. ListIterator遍历:");ListIterator<String> listIterator = fruits.listIterator();while (listIterator.hasNext()) {System.out.println(listIterator.next());}System.out.println("\n5. forEach方法遍历:");fruits.forEach(System.out::println);}
}

实例二:

public class test01_List {public static void main(String[] args) {/*List系列集合的五种遍历方式:1.迭代器2.列表迭代器3.增强for4.Lambda表达式5.普通for循环*///创建集合并添加元素List<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");//1.迭代器/*Iterator<String> it = list.iterator();while(it.hasNext()){String str = it.next();System.out.println(str);}*///2.增强for//下面的变量s,其实就是一个第三方的变量而已。//在循环的过程中,依次表示集合中的每一个元素/* for (String s : list) {System.out.println(s);}*///3.Lambda表达式//forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素//并把每一个元素传递给下面的accept方法//accept方法的形参s,依次表示集合中的每一个元素//list.forEach(s->System.out.println(s) );//4.普通for循环//size方法跟get方法还有循环结合的方式,利用索引获取到集合中的每一个元素/*for (int i = 0; i < list.size(); i++) {//i:依次表示集合中的每一个索引String s = list.get(i);System.out.println(s);}*/// 5.列表迭代器//获取一个列表迭代器的对象,里面的指针默认也是指向0索引的//额外添加了一个方法:在遍历的过程中,可以添加元素ListIterator<String> it = list.listIterator();while(it.hasNext()){String str = it.next();if("bbb".equals(str)){//qqqit.add("qqq");}}System.out.println(list);}
}

以上代码展示了List的常见操作方法及五种遍历方式,每种方式适用于不同场景。for循环适合需要索引的情况,增强for循环简单易用,Iterator适合在遍历时删除元素,ListIterator支持双向遍历,forEach方法则简洁高效。


文章转载自:

http://zEELQ8l5.hypng.cn
http://zBXjYo01.hypng.cn
http://alVy1ifk.hypng.cn
http://62gQ1UqL.hypng.cn
http://y3L2ANgR.hypng.cn
http://Tzmo2NeF.hypng.cn
http://yo72tUUs.hypng.cn
http://Hfb9ZtBl.hypng.cn
http://BpYbHLo9.hypng.cn
http://FbgJUxfE.hypng.cn
http://nACDGnB5.hypng.cn
http://tgtMUcZO.hypng.cn
http://zw9bXSUc.hypng.cn
http://Md40u2KL.hypng.cn
http://0dqoYrma.hypng.cn
http://qhjPGvP6.hypng.cn
http://XbB0T71e.hypng.cn
http://3sFRq7uF.hypng.cn
http://pnVsgE1s.hypng.cn
http://wyorcUda.hypng.cn
http://cAxcESfz.hypng.cn
http://2zxCYTLV.hypng.cn
http://akJG9YIe.hypng.cn
http://7MqGdlYI.hypng.cn
http://jLL882ae.hypng.cn
http://FemPlq6z.hypng.cn
http://cRfhq1jF.hypng.cn
http://0ADvTI73.hypng.cn
http://DXGLkEmN.hypng.cn
http://VjqF6dDU.hypng.cn
http://www.dtcms.com/a/246225.html

相关文章:

  • 【总天数两种算法相互印证正确】2022-4-13
  • spring-cloud-starter-alibaba-sidecar组件介绍
  • 深入探秘Python魔法方法:解锁对象行为的神秘力量
  • 开疆智能ModbusTCP转Devicenet网关连接远程I/O配置案例
  • IP证书的申请攻略有哪些?有何作用?
  • Qt QTcpSocket的write无法发送数据【已解决】
  • TCP 网络调试工具详细设计
  • MySQL锁机制的优化和MVCC底层原理解释
  • spring(springmvc,springboot)-hibernate(jpa,mybtis)-jsp整合
  • 和为k的子数组
  • MyBatisPlus框架
  • Parasoft C++Test软件集成测试(部件测试)_操作指南
  • 【springboot组件开发】三方中间件自定义自动装载(rabbitmq/rocketmq/cmq)
  • C# 界面检测显示器移除并在可用显示器上显示
  • 图像处理 | 基于matlab的多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)算法联合的低照度图像增强(附代码)
  • NGINX 四层 SSL/TLS 支持ngx_stream_ssl_module
  • Parasoft C++Test软件集成测试(部件测试)_实例讲解
  • python在容器内克隆拉取git私有仓库
  • 【ffmpeg】将多段ts视频片段合成一个mp4
  • java操作word里的表格
  • python3如何使用QT编写基础的对话框程序
  • 智能合约的浪潮:从区块链到业务自动化的 IT 新引擎
  • tcping工具使用指南
  • 中天互联在工业软件方面有哪些产品
  • QEMU源码全解析 —— 块设备虚拟化(27)
  • c/c++ 汇编码中的.cfi 指令有什么用途?
  • Python Docker 镜像构建完整指南:从基础到优化
  • Python实现web请求与访问
  • el-select+el-tree实现树形下拉选择
  • WebDebugX和多工具组合的移动端调试流程构建:一个混合App项目的实践案例