Java 集合框架2 迭代

之前学习了集合框架的基本概念和Collection() 基本的方法,添加,删除,还有带有All的方法,但是在集合中还没有介绍获取元素的方法

System.out.println(coll);//这语句会输出集合中的对象,但是不是集合获取元素的操作

输出语句是基于字符串的,集合中的对象最后都会转化为字符串输出,所有的元素会被整合成一个整体字符串,但是无法对单独的元素进行操作。
获取的原理
每个集合的数据结构是不一样的,存取的方式不一样也就是说获取的的方式每个集合也是不一样的,每个集合获取数据的方式与集合本身耦合性极大。

那么我们不去探究每个集合获取数据的方法到底是什么我们抽取每个获取方式的共性——一个接一个的获取元素。
同时我们考虑在获取时必要的一步共性操作操作是——要进行判断是否还有元素,如果没有再进行获取操作就是一种浪费。同时也还有一些其他的共性

集合中的元素获取也叫做:迭代,获取元素的方法叫迭代器。
如何获取集合中的迭代器:在Collection 中提供了方法 iterator();

Iterator iterator()
返回此集合中的元素的迭代器。 没有关于元素返回顺序的保证
返回类型 Iterator(接口)其实这就是我们所提取的迭代器的共性
这里写图片描述
代码体现

Iterator I= coll.iterator();//获取了迭代器对象

具体的获取,要参考 Iterator 中的方法:
boolean hasNext() 如果迭代具有更多元素,则返回 true 。
E next() 返回迭代中的下一个元素。(每次只取一个)
代码:

//Collection  提供了添加,删除方法。此时还没有获取方法
    public static void getElemen(Collection coll){
        Iterator  I = coll.iterator();//获取迭代器对象
        /*
        hasNext();  判断是否还有可以输出的元素,还有则返回  true
        next();    取出下一个元素,意思是当取出这个元素后自动到下一个元素
         */
        //调用 Iterator 中的方法   coll1= [qwe1, qwe2]
//        System.out.println(I.next());
//        System.out.println(I.next());
//        System.out.println(I.next());//当没有元素时再获取出现的异常: java.util.NoSuchElementException
        while(I.hasNext()){
           System.out.println("coll = "+I.next());
        }
        /*
        获取时用while  的弊端。当获取结束后。迭代器对象释放了,但是指向I没有释放,会造成空间浪费
        在开发时使用for
         */
        for(Iterator i = coll.iterator();i.hasNext();){
            System.out.println(i.next());
        }
    }

总结
此时已经学习了:集合中元素的添加,删除,获取

猜你喜欢

转载自blog.csdn.net/Stitch__/article/details/82315837