一篇文章带你搞懂Iterator接口的用法

开发 前端
本文主要介绍了Iterator接口、Iterator接口常用方法,Enumeration接口。Iterator是用来遍历Collection集合中元素,Iterator对象被称为迭代器。

[[414741]]

一、Iterator接口

(一)在项目开发中,很多时候需要遍历集合中所有元素。大多数会选择for循环、foreach循环等。Iterator接口是Java集合框架中的其中之一,它和Collection、Map接口是不同的。Iterator是用来遍历Collection集合中元素,Iterator对象被称为迭代器。

(二)Iterator常用的方法:

1.boolean hasNext():判断集合中是否存在下一个遍历元素,如果还有元素没被遍历,返回true;反之,返回false。

2.Object next():返回集合中的下一个元素。

3.void remove():删除集合中上一次的next()方法返回的元素。

4.void forEachRemaining():Java1.8中新增的默认方法,它是对剩余的每个元素执行操作,直到所有元素都已经处理或抛出异常。

二、Iterator接口中boolean hasNext()方法、Object next()方法

1.boolean hasNext():判断集合中是否存在下一个遍历元素,如果还有元素没被遍历,返回true;反之,返回false。

2.Object next():返回集合中的下一个元素。

3.例子的实现:

import java.util.ArrayList; 
import java.util.Iterator; 
public class t3 { 
public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        //创建ArrayList集合 
        ArrayList al=new ArrayList(); 
        al.add("Java"); 
        al.add("C语言"); 
        al.add("Python"); 
        //获取Iterator对象 
        Iterator it=al.iterator(); 
        //hasNext()方法 
        while(it.hasNext()){ 
            //next()方法 
            String s = (String)it.next(); 
            System.out.println(s); 
        } 


  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

运行的结果是:

图片

三、Iterator接口中void remove()方法

1.void remove():删除集合中上一次的next()方法返回的元素。

2.例子的实现:

import java.util.ArrayList; 
import java.util.Iterator; 
public class t3 { 
public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        //创建ArrayList集合 
        ArrayList al=new ArrayList(); 
        al.add("软件测试"); 
        al.add("HTML5"); 
        al.add("Vue.js"); 
        //获取Iterator对象 
        Iterator it=al.iterator(); 
        //hasNext()方法 
        while(it.hasNext()){ 
            //next()方法 
            String s = (String)it.next(); 
            System.out.println(s); 
            if(s.equals("Vue.js")){ 
                //remove()方法 
                it.remove(); 
            } 
        } 
        //删除元素后打印集合元素 
        System.out.println(al); 


  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

运行的结果是:

图片

四、 Enumeration接口

1.Enumeration接口用法和Iterator接口很相似,JDK提供一个Vector集合,这个集合是List接口的一个实现类,Vector类中有一个element()方法返回Enumeration对象,然后通过这个对象遍历集合中的元素。

2.Enumeration对象遍历Vector集合例子:

import java.util.*; 
public class t3 { 
public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        //创建Vector对象 
        Vector v=new Vector(); 
        v.add("Java"); 
        v.add("进阶"); 
        v.add("学习"); 
        v.add("交流"); 
        //获取Enumeration对象 
        Enumeration e=v.elements(); 
        //判断对象是否还有更多的元素 
        while(e.hasMoreElements()){ 
            Object o=e.nextElement(); 
            System.out.println(o); 
        } 


  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

运行的结果是:

图片

五、总结

本文主要介绍了Iterator接口、Iterator接口常用方法,Enumeration接口。Iterator是用来遍历Collection集合中元素,Iterator对象被称为迭代器。通过例子介绍如何使用Iterator接口中boolean hasNext()方法、Object next()方法、void remove()方法。Enumeration接口实质上也是遍历集合中的元素。希望大家通过本文的学习,对你有所帮助!

 

责任编辑:姜华 来源: Java进阶学习交流
相关推荐

2021-08-30 10:01:01

Map接口HashMap

2021-05-27 09:01:14

Python文件读写Python基础

2021-05-18 09:00:28

Pythonclass

2021-09-27 09:18:30

ListIterato接口方法

2024-10-23 16:02:40

JavaScriptPromiserejection

2021-08-17 09:55:05

JavaScript MicrotaskPromise

2021-08-06 07:51:48

JavaScriptStorage接口

2024-08-06 14:44:48

JavaScriptStorage 接口

2024-10-08 15:51:09

JavaScriptStorage 接口

2024-05-23 15:32:33

StorageJavaScript

2021-06-29 10:00:02

JavaScriptStorage接口

2021-05-21 09:01:56

Python继承多态

2022-02-21 09:44:45

Git开源分布式

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平台

2020-06-03 11:06:26

DNS域名缓存

2022-02-16 10:03:06

对象接口代码

2020-02-28 11:29:00

ElasticSear概念类比

2020-11-10 10:48:10

JavaScript属性对象

2021-06-04 09:56:01

JavaScript 前端switch
点赞
收藏

51CTO技术栈公众号