Java 中的 Iterator 迭代器函数

首页 / Java入门教程 / Java 中的 Iterator 迭代器函数

通常,您将需要循环浏览集合中的元素,例如,您可能要显示每个元素。最简单的方法是使用迭代器,是实现Iterator或ListIterator接口的对象。

Iterator 方法

Sr.No.Method & Remark
1

boolean hasNext()

如果有更多元素,则返回true。否则,返回false。

2

Object next()

返回下一个元素。如果没有下一个元素,则抛出NoSuchElementException。

3

void remove()

删除当前元素。如果尝试在未调用next()的情况下调用remove(),则抛出IllegalStateException。

ListIterator 方法

Sr.No.Method & Remark
1

void add(Object obj)

将obj插入到元素的列表中,该元素将由下次调用next()返回。

2

boolean hasNext()

如果存在下一个元素,则返回true。否则,返回false。

3

boolean hasPrevious()

如果存在上一个元素,则返回true。否则,返回false。

4

Object next()

返回下一个元素。如果没有下一个元素,则抛出NoSuchElementException。

5

int nextIndex()

返回下一个元素的索引。如果没有下一个元素,则返回列表的大小。

6

Object previous()

返回上一个元素。如果没有上一个元素,则抛出NoSuchElementException。

7

int previousIndex()

返回上一个元素的索引。如果没有上一个元素,则返回-1。

8

void remove()

从列表中删除当前元素。如果在调用next()或previous()之前调用remove(),则抛出IllegalStateException。

9

void set(Object obj)

将obj分配给当前元素。这是对next()或previous()的调用最后返回的元素。

Iterator 示例

这里演示Iterator和ListIterator的示例。它使用ArrayList对象,但是一般原则适用于任何类型的集合。

当然,ListIterator仅适用于实现List接口的那些集合。

import java.util.*;
public class IteratorDemo {

   public static void main(String args[]) {
      // 创建数组列表
      ArrayList al = new ArrayList();
      
      // 将元素添加到数组列表
      al.add("C");
      al.add("A");
      al.add("E");
      al.add("B");
      al.add("D");
      al.add("F");

      // 使用迭代器显示al的内容
      System.out.print("Original contents of al: ");
      Iterator itr = al.iterator();
      
      while(itr.hasNext()) {
         Object element = itr.next();
         System.out.print(element + " ");
      }
      System.out.println();
      
      // 修改被迭代的对象
      ListIterator litr = al.listIterator();
      
      while(litr.hasNext()) {
         Object element = litr.next();
         litr.set(element + "+");
      }
      System.out.print("Modified contents of al: ");
      itr = al.iterator();
      
      while(itr.hasNext()) {
         Object element = itr.next();
         System.out.print(element + " ");
      }
      System.out.println();

      // 现在,向后显示列表
      System.out.print("Modified list backwards: ");
      
      while(litr.hasPrevious()) {
         Object element = litr.previous();
         System.out.print(element + " ");
      }
      System.out.println();
   }
}

这将产生以下输出-

Original contents of al: C A E B D F
Modified contents of al: C+ A+ E+ B+ D+ F+
Modified list backwards: F+ D+ B+ E+ A+ C+

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

快速上手Kotlin开发 -〔张涛〕

Go语言从入门到实战 -〔蔡超〕

检索技术核心20讲 -〔陈东〕

超级访谈:对话张雪峰 -〔张雪峰〕

网络排查案例课 -〔杨胜辉〕

林外 · 专利写作第一课 -〔林外〕

Kubernetes入门实战课 -〔罗剑锋〕

Python实战 · 从0到1搭建直播视频平台 -〔Barry〕

好记忆不如烂笔头。留下您的足迹吧 :)