2016-11-14 集合输出

前言:Collection、List、Set三个接口里面,只有List接口是最方便进行输出操作的,所以这里给出集合的四种输出形式。

一、迭代Iterator

集合在JDK1.8之前支持四种输出方式:Iterator(95%)、ListIterator(0.05%)、Enumeration(4.9%)、foreach(0.05%).

API接口定义:public interface Iterator<E>;

         定义的主要方法:public boolean hasNext(),public E next();

Iterator本事是一个接口,如果想去的本接口实例化只能依靠Collection接口,在Collection接口定义有这样的一个操作:public Iterator<E> iterator();

范例代码:

package cn.mldn.demo26;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestDemo {
    public static void main(String[] args) {
        Set<String> all = new HashSet<String>();
        all.add("中国");
        all.add("美国");
        all.add("英国");
        Iterator<String> iter = all.iterator();
        while(iter.hasNext()){
            String str = iter.next();
            System.out.println(str);
        }
    }
}

运行结果:

二、双向迭代:ListIterator(了解)

Iterator本身只具备由前向后的输出(99%的情况下都是这样做的),但是由于实际操作的需要,需要支持双向输出:可以由前向后也可以由后向前输出。那么就可以使用Iterator接口的子接口:ListIterator接口:

主要的方法:

|-public boolean hasPrevious();判断是否有前一个元素;

|-public E previous():取得钱一个元素;

ListIterator是专门为List子接口定义的输出接口,方法:public ListIterator<E>listIterator();

范例代码:

package cn.mldn.demo26;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class TestDemo_01 {
    public static void main(String[] args) {
        List<String> all = new ArrayList<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        ListIterator<String> iter = all.listIterator();
        while(iter.hasNext()){
            String str = iter.next();
            System.out.print(str+"、");
        }
        System.out.println("\n由后向前输出");
        while(iter.hasPrevious()){
            System.out.print(iter.previous()+"、");
        }
    }
}

运行结果:

★★特别提醒:如果要实现由后向前输出的操作之前,一定要首先发生由前向后的输出。

三、forearch输出

foreach不关是能够简便输出数组,对于集合也是可以的。

范例代码:

package cn.mldn.demo26;
import java.util.ArrayList;
import java.util.List;
public class TestDemo_02 {
    public static void main(String[] args) {
        List<String> all = new ArrayList<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        for(String str:all){
            System.out.print(str);
        }
    }
}

运行结果:

四、Enumeration输出

Enumeration是Vector类一起在JDK1.0的时候退出的输出接口,即:最早的Vector如果要想输出就需要使用Enumeration接口完成,那么此接口定义如下:

public interface Enumeration<E>

重要方法:public boolean hasMoreElements()--判断是否有下一个元素,等同于hasNext();

public E nextElement()—取出当前元素,等同于next();

如果要取得Enumeration接口实例化对象只能依靠Vector子类。

Vector子类里面定义如下的操作方法:public Enumeration<E> elements();

范例代码:

package cn.mldn.demo26;
import java.util.Enumeration;
import java.util.Vector;
public class TestDemo_03 {
    public static void main(String[] args) {
        Vector<String> all = new Vector<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        Enumeration<String> enu = all.elements();
        while(enu.hasMoreElements()){
            String str = enu.nextElement();
            System.out.print(str);
        }
    }
}

运行结果:

总结:对于输出集合的操作中,重点以Iterator与Enumeration为主,并且记住两个接口常用的一些方法。

时间: 11-14

2016-11-14 集合输出的相关文章

2016.11.14 MIT challenge之课程总览

Degree Chartshttp://catalog.mit.edu/degree-charts/computer-science-engineering-course-6-3/ MIT Challengehttps://www.scotthyoung.com/blog/myprojects/mit-challenge-2/ MIT公开课地址: https://ocw.mit.edu/courses/physics/8-01-physics-i-fall-2003/ mooc上的MIT com

hdu 2016 数据的交换输出

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2016 题目大意:把最小的和第一个交换并输出.注意格式哦! 1 #include <stdio.h> 2 int main () 3 { 4 int n,a[110],i,j,t,min; 5 while (scanf("%d",&n)!=EOF) 6 { 7 if (n==0) 8 break; 9 for (i=0; i<n; i++) 10 { 11 scan

每周进度及工作量统计——2016.11.24-2016.11.30

项目:连连看游戏 项目类型:四人小组项目 小组名称:天天向上 小组成员:王森.张政,张金生,栾骄阳 项目改进:final版本研发和维护 项目预期时间:2016.9.10-2016.12.8 2016.11.26-2016.11.27 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 讨论  13:24  13:43  0  19  20   设计  13:43  14:04  0  21  30 编码 功能优化  14:46  16:51  26  99  120 文档

2016.11.18多态

下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 结论: java中基类对象不能当做子类对象使用,需要用强制转换来实现,子类对象变量=(子类名)基类对象名:错误的代码是d=m; d=c; 1.   左边的程序运行结果是什么?2.   你如何解释会得到这样的输出?3.   计算机是不会出错的,之所以得到这样的运行结果也是有原因的,那么从这些运行结果中,你能总结出Java的哪些语法特性? 运行结果截图: pu

第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列

第11章 ????GPIO输出-使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ? 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LE

第11章 GPIO输出—使用固件库点亮LED

第11章     GPIO输出-使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LED灯

Iterator接口。集合输出

在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操作,就一定使用iterator接口,这是最重要的标准. iterator接口的操作原理: iterator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容,则把内容输出. 对于iterator而言,其本身是一个借口,所以要想实例化,需要必须依靠collect

11.14 Daily Scrum

通过一天的努力,大家的任务基本已经完成,主界面的功能也日趋完善,后续的数据库处理和软件搜索等工作也已经开始陆续开展,到目前一共出现了三个问题急待解决,一是我们的燃尽图工作开展较晚,导致了大量已经展开的工作出现无法记录的情况,二是数据库开展的方面出现了不少的问题,由于我们才刚刚开始学习数据库的基本知识,有许多问题还没有得到解决,我们的方案是通过实例学习掌握数据库的基本技能.三是工作难题越来越多,工作量越来越大,有很多问题悬而不决,只有通过团队的合作意识的不断深入,分工的具体化的不断加深,这些问题就

java:集合输出之Iterator和ListIterator

在调用Iterator集合输出时,如果想要删除某个元素,请直接使用Iterator来判断元素是否存在然后再删除(next()当前指针内容,remove()删除当前内容 );如果在将集合丢给Iterator输出后,再用集合中的删除功能会报错. Iterator集合输出 List<String> allList = new ArrayList<String>(); allList.add("A"); allList.add("B"); allLi

算法导论之十(十一章散列表11.1-4大数组实现直接寻址方式的字典操作)

11.1-4题目: 我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典.开始时,该数组中可能包含一些无用信息,但要对整个数组进行初始化是不太实际的,因为该数组的规模太大.请给出在大数组上实现直接寻址字典的方式.每个存储对象占用O(1)空间:SEARCH.INSEART.DELETE操作的时间均为O(1):并且对数据结构初始化的时间为O(1).(提示:可以利用一个附加数组,处理方式类似于栈,其大小等于实际存储在字典中的关键字数目,以帮助确定大数组中某个给定的项是否有效). 想法: