【Java类集】_Iterator接口笔记(实例亲测)

【Java类集】_Iterator接口笔记

本章目标:
掌握集合输出的标准操作
掌握Iterator接口的主要作用及使用注意事项

在集合的操作中支持以下几种方式:

Iterator
ListIterator
foreach输出
Enumeration输出

3、具体内容

Iterator接口简介

集合输出的标准操作:

"在使用集合输出的时候必须以下的思路:只要是碰到了集合输出的操作,就一定使用Iterator接口,因为这是最标准的做法。"

Iterator接口的操作原理:

Iterator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断是否有内容,如果有内容则把内容取出


对于Iterator而言,因为其本身是一个接口,所以要想实例化则必须依靠Collection接口完成。

Iterator<E> iterator()

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class IteratorDemo01{
    public static void main(String[] args){
        List<String> allList = new ArrayList<String>();
        allList.add("Hello");
        allList.add("_");
        allList.add("World!!!");
        Iterator<String> iter = all.iterator();
        while(iter.hasNext()){    //判断是否有内容
            System.out.println(iter.next());    //输出内容
        }
    }
}



输出:

Hello
_
World!!!

以上操作为Iterator的标准操作做法
在Iterator接口中提供了remove()方法,此方法的功能是删除当前的对象。

import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
public class IteratorDemo02{
    public static void main(String[] args){
        List<String> all = new ArrayList<String>();
        all.add("hello");
        all.add("_");
        all.add("world!!!");
        Iterator<String> iter = all.iterator();
        while(iter.hasNext()){
            String str = iter.next();
            if("_".equals(str)){
                iter.remove();    //删除元素
            }else{
                System.out.println(str);    //输出内容
            }
        }
        System.out.println("删除之后的集合:"+all);
    }
}




输出:

hello
world!!!
删除之后的集合:[hello, world!!!]

在实际上Iterator是很少调用删除操作的,因为其本身的功能是输出内容。当然,对于删除操作也有以下的注意点:
List接口本身存在删除的方法:remove()
如果在使用迭代输出的过程中使用了List中的remove()执行删除操作,则代码将出现问题。

import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
public class IteratorDemo02{
    public static void main(String[] args){
        List<String> all = new ArrayList<String>();
        all.add("hello");
        all.add("_");
        all.add("world!!!");
        Iterator<String> iter = all.iterator();
        while(iter.hasNext()){
            String str = iter.next();
            if("_".equals(str)){
                all.remove();    //删除元素
            }else{
                System.out.println(str);    //输出内容
            }
        }
        System.out.println("删除之后的集合:"+all);
    }
}



输出:

IteratorDemo02.java:14: 找不到符号
符号: 方法 remove()
位置: 接口 java.util.List<java.lang.String>
                                all.remove();   //删除元素
                                   ^
1 错误

4、总结

Iterator接口的功能是从前向后输出,属于单向输出
Iterator的主要功能就是完成迭代输出操作的

在使用Iterator的时候最好不要删除数据


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值