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 集合输出的相关文章

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 文档

Iterator接口。集合输出

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

11.14 Daily Scrum

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

2016/01/14开始学习git:标签管理:创建标签

标签也是版本库的一个快照指向某个commit的指针(分支可以移动,标签不能移动) 切换到需要打标签的分支上git tag <name>就可以打一个新标签: $ git tag v1.0 git tag查看所有标签: $ git tagv1.0 打之前提交的版本的commit需要当时的commit ID$ git tag v0.9 93ddf60 查看tag$ git tagv0.9v1.0 标签不是按时间顺序列出,而是按字母排序的.可以用git show <tagname>查看标签

2016/1/14 数字类处理 包装类

⑩数字处理类 取整:1,四舍五入,格式Math.round(浮点数) 2,取下限值,格式 Math.floor(浮点数)   3,取上限值,格式Math.ceil(浮点数) 生成随机数 1,Math.random()静态方法.介于0和1之间的小数               2,Random类 实例化Random Random x =new Random()                                  Random x=new Random(随机数种子)         

2016/1/14 作业 第一题 生成四位验证码 第二题 彩票机

1 import java.util.Random; 2 3 4 public class Test1 { 5 6 /** 7 * @param args 8 */ 9 public static void main(String[] args) { 10 // TODO 自动生成的方法存根 11 12 // 方法一: 全部列出 13 String ss=new String("qwertyuiopasdfghjklzxcvbnm1234567890"); 14 15 //随机数实例化

2016.03.14 项目管理知识

第四章:项目管理一般知识 1.核心知识域有哪些.保障域有哪些?伴随域有哪些?过程域有哪些?P140 核心知识域包括整体管理.范围管理.进度管理.成本管理.质量管理和信息安全管理等 保障域包括人力资源管理.合同管理.采购管理.风险管理.信息(文档)与配置管理.知识产权管理.法律法规标准规范和职业道德规范等 伴随域包含变更管理和沟通管理等 过程域包含科研与立项.启动.计划.实施.监控和收尾等,而其中的监控过程则可能发生在项目生命周期的任一个阶段. 2.有效的项目管理要求项目管理团队,至少要使用哪六个

BestCoder Round #11 题解集合

1001.Alice and Bob 签到题*1,只要x * 2 == n && y * 2 == m就满足条件. 1 var 2 m, n, x, y : int64; 3 4 begin 5 while not eof do begin 6 readln(m, n, x, y); 7 if (m = 2 * x) and (n = 2 * y) then writeln('YES') else writeln('NO'); 8 end; 9 end. 1002.Bob and math

每周进度及工作量统计——2016.11.10-2016.11.16

项目:连连看游戏 项目类型:四人小组项目 小组名称:天天向上 小组成员:王森.张政,张金生,栾骄阳 项目改进:beta阶段结束,进入总结个final版本研发和维护 项目预期时间:2016.9.10-2016.11.24 C类别 C内容 S开始时间 E结束时间 I间隔 T净时间 P预计时间 分析 讨论  13:44  14:01  0  17  20   设计  14:01  14:16  0  15  40 编码 功能优化  14:16  16:47  12  139  120 文档 程序说明