java集合之迭代器Iterator

来源:互联网 发布:注册公司 知乎 编辑:程序博客网 时间:2024/05/22 17:43

          迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员无需了解该序列的底层结构是如何实现的。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

       java 迭代器是用来对collection进行迭代的迭代器,它取代了java集合框架中的Enumeraion(枚举),但是迭代器与枚举有两个不同之处:

       1、迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的collection移除元素

       2、方法的名称得到了改进

       java迭代器名称为:Iterator,它是一个接口,在使用的时候可以通过Iterator()方法返回一个迭代器对象提供了三个方法,分别是:hashnext()、next()和remove()

       hashnext():用来判断指定的容器中是否还有可以迭代的元素,如果有则返回true

       next():用来迭代出容器中的下一个元素,如果容器没有可以迭代元素后将抛出NosuchElementException异常

       remove():从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。如果指定的容器不支持迭代将抛出UnsupportedOperationException异常。如果在调用该方法前没有调用next()方法,或者上一次调用next()方法后已经调用过remove()时将抛出IllegalStateException异常

       

import java.util.Arrays;import java.util.Iterator;import java.util.List;public class Test {public static void main(String[] args) {String[] str = {"s","w","e","q","d","d"};//将声明的数组转换成List集合     Arrays.asList(T.....a)该方法返回一个List集合List<String> list = (List<String>) Arrays.asList(str);//获得一个迭代器对象    Iterator<String>  iter = list.iterator();    /**     * 循环判断迭代器中是否有可以迭代的对象     * 若此处不进行判断 当迭代到集合的末尾时,next()方法将抛出NosuchElementException异常     */    while(iter.hasNext()){    //循环获取迭代器的对象    String str1 = iter.next();    System.out.print(str1+",");    }    //删除容器中的一个元素:在调用.remove()方法前若没有调用next()方法程序将抛出异常    //若要删除两个相邻的元素时,则要调用两次next()和remove()    //删除第一个元素    iter.next();    iter.remove();    //删除第二个元素    iter.next();    iter.remove();}}

0 0
原创粉丝点击