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

Java集合框架 迭代器

Java 集合框架是 Java 标准库的重要组成部分,提供了丰富的数据结构和算法支持。迭代器(Iterator)是集合框架中用于遍历集合元素的重要工具。下面详细介绍迭代器的相关概念、用法和应用场景。

1. 迭代器(Iterator)

迭代器是 Java 集合框架中用于遍历集合元素的接口。它提供了一种统一的方式来访问集合中的元素,而不暴露底层的数据结构。迭代器的主要方法包括 hasNext()next(),用于依次访问集合中的元素。

1.1 迭代器接口

迭代器接口 java.util.Iterator 定义了以下方法:

  • hasNext():返回 true 如果仍有元素可以迭代。
  • next():返回下一个元素。
  • remove():(可选)删除上一次返回的元素。
1.2 获取迭代器

获取迭代器的常用方法是调用集合类的 iterator() 方法。

1import java.util.ArrayList;
2import java.util.Iterator;
3import java.util.List;
4
5public class IteratorExample {
6    public static void main(String[] args) {
7        List<Integer> numbers = new ArrayList<>();
8        numbers.add(1);
9        numbers.add(2);
10        numbers.add(3);
11
12        Iterator<Integer> iterator = numbers.iterator();
13
14        while (iterator.hasNext()) {
15            Integer number = iterator.next();
16            System.out.println(number);
17        }
18    }
19}
1.3 迭代器的常见用法
  1. 遍历集合

    1import java.util.ArrayList;
    2import java.util.Iterator;
    3import java.util.List;
    4
    5public class IteratorExample {
    6    public static void main(String[] args) {
    7        List<String> names = new ArrayList<>();
    8        names.add("Alice");
    9        names.add("Bob");
    10        names.add("Charlie");
    11
    12        Iterator<String> iterator = names.iterator();
    13
    14        while (iterator.hasNext()) {
    15            String name = iterator.next();
    16            System.out.println(name);
    17        }
    18    }
    19}
  2. 删除元素

    1import java.util.ArrayList;
    2import java.util.Iterator;
    3import java.util.List;
    4
    5public class IteratorExample {
    6    public static void main(String[] args) {
    7        List<String> names = new ArrayList<>();
    8        names.add("Alice");
    9        names.add("Bob");
    10        names.add("Charlie");
    11
    12        Iterator<String> iterator = names.iterator();
    13
    14        while (iterator.hasNext()) {
    15            String name = iterator.next();
    16            if (name.equals("Bob")) {
    17                iterator.remove(); // 删除当前元素
    18            }
    19        }
    20
    21        System.out.println(names); // 输出: [Alice, Charlie]
    22    }
    23}
  3. 增强型 for 循环 增强型 for 循环实际上是使用迭代器的另一种形式,它更简洁且易于使用。

    1import java.util.ArrayList;
    2import java.util.List;
    3
    4public class EnhancedForLoopExample {
    5    public static void main(String[] args) {
    6        List<String> names = new ArrayList<>();
    7        names.add("Alice");
    8        names.add("Bob");
    9        names.add("Charlie");
    10
    11        for (String name : names) {
    12            System.out.println(name);
    13        }
    14    }
    15}


http://www.kler.cn/news/308268.html

相关文章:

  • 麒麟操作系统搭建Nacos集群
  • 面试经典150题——最后一个单词的长度
  • 基于双向RRT算法的三维空间最优路线规划matlab仿真
  • 云服务器开放端口
  • 短信验证码倒计时 (直接复制即可使用) vue3
  • 今日leetCode 242.有效的字母异位词
  • 【二叉树进阶】二叉搜索树
  • 视频格式转为mp4(使用ffmpeg)
  • 小程序面试题八
  • 【百日算法计划】:每日一题,见证成长(014)
  • 【SQL Server】清除日志文件ERRORLOG、tempdb.mdf
  • 如何快准稳 实现MySQL大表历史数据迁移?
  • linux文件系统权限详解
  • 服务器——装新的CUDA版本的方法
  • Web:HTTP包的相关操作
  • RocksDB系列一:基本概念
  • flink实战--如何基于java-agent技术增强Flink功能
  • 【Hot100】LeetCode—4. 寻找两个正序数组的中位数
  • 简单易懂的变动率指标ROC,做短线的快来了解一下
  • 超链接/表格/表单的复习(课后作业)
  • 蓝桥杯DS18B20程序源码
  • 【数据结构】4——树和森林
  • Mastering openFrameworks_第十一章_网络
  • 身份识别与服装类型检测系统源码分享
  • 基于微信小程序图书馆自习室座位预约小程序
  • USB组合设备——串口+鼠标+键盘
  • WPS生成目录
  • OpengGL教程(六)---坐标的变换和坐标系的变换
  • 文献多\bibliographystyle和文献少\begin{thebibliography}
  • 【JAVA】数据脱敏技术(对称加密算法、非对称加密算法、哈希算法、消息认证码(MAC)算法、密钥交换算法)使用方法