《Java集合类3》Iterator 与 比较器

本文介绍了Java集合框架中的迭代器Iterator模式,用于遍历集合元素,包括hasNext、next和remove方法的使用。此外,还讨论了Comparable和Comparator接口,Comparable用于自然顺序比较,Comparator则用于自定义比较逻辑。
摘要由CSDN通过智能技术生成

标题 :Iterator(迭代器)

可迭代是Java集合框架下的所有集合类的一种共性,也就是把集合中的所有元素遍历一遍。迭代的过程需要依赖一个迭代器对象。

Iterator iterator = list.iterator();
        while(iterator.hasNext()){
   
            String string = iterator.next();
        }

概述
迭代—简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类,它是一个很典型的设计模式。迭代器(Iterator)模式是用于提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节
在没有迭代器时我们是这么进行处理的。如下:
【数组】

int[] arrays = new int[10];
   for(int i = 0 ; i  arrays.length ; i++){
   
       int a = arrays[i];
   }

【ArrayList】

ListString list = new ArrayListString();
   for(int i = 0 ; i  list.size() ;  i++){
   
      String string = list.get(i);
   }

上面两种方式的弊端:对于这两种方式,我们都事先知道集合的内部结构,访问代码和集合本身是紧密耦合的,无法将访问逻辑从集合类和客户端代码中分离出来。同时每一种集合对应一种遍历方法,客户端代码无法复用。
在实际应用中需要如何将上面将两个集合进行整合是相当麻烦的。所以为了解决以上问题,Iterator模式出现,它总是用同一种逻辑来遍历集合

使得客户端自身不需要来维护集合的内部结构,所有的内部状态都由Iterator来维护。客户端从不直接和集合类打交道,它总是控制Iterator,向它发送向前,向后,取当前元素的命令,就可以间接遍历整个集合。

java.util.Iterator
在Java中Iterator是一个接口,Java所有集合类都是进行迭代的。
1、接口定义

public interface Iterator{
   
    boolean hasNext();
    Object next();
    void remove();
}

2、其中:
boolean hasNext():该方法用于判断集合对象是否还有下一个元素,如果已经是最后一个元素,则返回false。
Object next():获取出下一个元素。
void remove():从迭代器指向的Collection中移除迭代器返回的最后一个元素。

【注意】:Iterator只有上面接口中的三个方法,再没有其他的方法了。
所以对于迭代器中的元素只能删,不能加
而且这里的移除只是针对于迭代器中的元素,而非Iterator所操作的集合的元素,即就是集合对象不能动

3、迭代方法:
iterator()方法——是所操作的集合类的方法
——是集合类的引用 . iterator()—>返回的是一个Iterator对象

    for(Iterator  it = list.iterator(); it.hasNext();){
   
           //假如要输出的是String类型
        String s = (String) it
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值