Java-集合类输出

        有关集合类的输出,专门用一篇博客来进行详细的总结。

        输出集合类的元素最常见的是使用toString()方法,或者,List接口中有提供get()方法,但是这些都不是集合类的标准输出。从严格意义上来讲,集合的输出有四种形式。

        1:迭代输出:Iterator(标准输出法)

        在Collection接口中有一个iterator()方法,只要是Collection接口的实现类对象就一定会有此方法,可以取得其Iterator对象。在JDK1.5以前,此方法定义在Collection接口中,JDK1.5以后此方法被定义为Collection的父接口:Iterable接口中的方法。

        Iterable接口中的抽象方法有几个时经常会用到的

        1:public boolean hasNext(); 判断是否有下一个元素

        2:public E next(); 取得当前元素

        3:public void remove(); 删除元素

        接下来的代码,我演示一下Iterator的使用

        List<String> list = new ArrayList<>();
        list.add("Hello A");
        list.add("Hello B");
        list.add("Hello C");
        Iterator<String> iterator = list.iterator();//返回list的Iterator对象
        while(iterator.hasNext()){
            String string = iterator.next();
            System.out.println(string);
        }

        其实Iterator的使用方法有点类似于Scanner文本扫描器。

        注意:在集合输出的时候千万不要修改集合中的元素,否则会抛出ConcurrentModifictionException异常

        2:双向迭代输出:ListIterator(List接口独有)

        在使用Iterator进行输出的时候,只能从前到后来进行内容的迭代处理,在某些特殊的情况下我们也许需要双向的迭代,Iterator接口的子接口:ListIterator接口就可以实现这种需求

        不过这种输出模式只有List接口才有,而Set接口是没有的,我来演示一下这种输出模式

        List<String> list = new ArrayList<>();
        list.add("Message A");
        list.add("Message B");
        list.add("Message C");
        list.add("Message D");
        ListIterator<String> listIterator = list.listIterator();//获得:ListIterator对象
        System.out.println("从前向后");
        while (listIterator.hasNext()){
            System.out.println(listIterator.next()+" ");
        }
        System.out.println("从后向前");
        while(listIterator.hasPrevious()){
            System.out.println(listIterator.previous()+" ");
        }

        

        这里有一点要注意的是:要使用从后向前输出模式的时候必须先进行从前到后的输出,如果一开始使用从后向前输出的话,listIterator.previous()方法是获取不到上一个元素的,这样就实现不了双向输出了

        3:Enumeration枚举输出(Vector类独有)

        这中输出方式在JDK1.0就已经引入了,主要是为Vector服务,在JDK1.5以后对这种模式追加了泛型。首先介绍一下Vector类中有关Enumeration的方法。

        1:public boolean hasMoreElements(); 判断是否有下一个元素

        2:public E nextElement(); 取得下一个元素

        3:public Enumeration elements(); 取得Enumeration接口对象

        例子:使用Enumeration进行输出

        Vector<String> vector = new Vector<>();
        vector.add("message A");
        vector.add("message B");
        vector.add("message C");
        vector.add("message D");
        Enumeration<String> enumeration = vector.elements();
        while(enumeration.hasMoreElements()){
            System.out.println(enumeration.nextElement());
        }

        直到现在一些操作类库上还是只支持使用Enumeration,不支持Iterator输出

        4:foreach输出(最常用)

        在JDK1.5以后我们可以用foreach来输出集合,这也是最简单,最常用的一种输出方式

        示例:使用foreach输出

        List<String> list = new ArrayList<>();
        list.add("Message A");
        list.add("Message B");
        list.add("Message C");
        list.add("Message D");
        list.add("Message E");
        for(String s : list){
            System.out.println(s);
        }

        

        

        有关集合输出的方式就先总结·到这里,希望能对大家有所帮助。

猜你喜欢

转载自blog.csdn.net/qq_38449518/article/details/80379569