Java核心API -- 7(Iterator迭代器、Comparable、Comparator比较器)

1. Iterator迭代器java

    全部Collection的实现类都实现了iterator方法,该方法返回一个Iterator接口类型的对象,用于实现对集合元素迭代的便利。在java.util包下。安全

    1)Iterator定义有三个方法:ide

        ①boolean hasNext()方法:判断指针后面是否有元素。spa

        ②E next()方法:指针后移,并返回当前元素。E表明泛型,默认为Object类型。线程

        ③void remove()方法:在原集合中删除刚刚返回的元素。设计

    2)对于List集合而言,能够经过基于下标的get方法进行遍历;而iterator方法是针对Collection接口设计的,因此,全部实现了Collection接口的类,均可以使用Iterator实现迭代遍历。指针

    3)迭代器的使用方式:先问后拿。问:boolean hasNext()该方法询问迭代器当前集合是否还有元素;拿:E next()该方法会获取当前元素。迭代器的迭代方法是while循环量身定制的。orm

    4)迭代器中的删除问题:在迭代器迭代的过程当中,咱们不能经过“集合”的增删等操做,来改变该集合的元素数量!不然会引起迭代异常!若想删除迭代出来的元素,只能经过Iterator。迭代器在使用本身的remove()方法时,能够将刚刚获取的元素从集合中删除,可是不能重复调用两次!即在不迭代的状况下,不能在一个位置删两次。对象


    案例9:blog

        wKiom1WNFvKxg5yAAAKAJAVZKSg077.jpg


2. Comparable和Comparator接口

    (1) Comparable接口:Comparable接口用于表示对象间的大小关系,咱们须要实现Comparable接口,并重写compareTo()方法定义比较规则。

    (2) Collections.sort()方法:须要集合中的对象实现Comparable接口,从而能够调用其compareTo方法判断对象的大小,不然sort将没法判断。该方法会依次调用集合中每一个元素的compareTo方法,并进行天然排序。 


    案例10:

        wKiom1WNGamyEHIoAAHq91rkzY0951.jpg

        wKioL1WNG36ztdQWAAGE_hyCnB0496.jpg

        wKiom1WNGfTSb2eSAABZfC9wijE684.jpg


    (3) Comparator接口:比较器。一旦Java类实现了Comparable,其比较逻辑就已经肯定了,若是但愿在排序中的操做按照“临时指定规则”,即自定义比较规则。能够采用Comparator接口回调方式。使用匿名类方式建立一个实例来定义比较器的方式很常见。

    Comparator比较器建立步骤:

        ①定义一个类并实现Comparator接口。

        ②实现接口中的抽象方法compare(E o1,E o2)。

        ③实例化这个比较器

        ④调用Collections的重载方法:sort(Collection c,Comparator comparator)进行排序。


    案例11:

        wKioL1WNG9uxf7NNAAJZkNLZPlo765.jpg


3. Collection和Collentions的区别

    Collection是java.util下的接口,它是各类集合的父接口,继承于它的接口主要有Set 和List;

   Collections是个java.util下的类,是针对集合的帮助类,提供一系列静态方法实现对各类集合的搜索、排序、线程安全化等操做。

相关文章
相关标签/搜索