J2SE新特性---循环语句的增强

j2se|循环|语句

之前类似这样的语句:

void cancelAll(Collection c) {

    for (Iterator i = c.iterator(); i.hasNext(); ) {

        TimerTask tt = (TimerTask) i.next();

        tt.cancel();

    }

}

以后可以这样写:

void cancelAll(Collection c) {

    for (Object o : c)

        ((TimerTask)o).cancel();

}

有时候我们可能写出这样的代码:

List suits = ...;

List ranks = ...;

List sortedDeck = new ArrayList();

for (Iterator i = suits.iterator(); i.hasNext(); )

    for (Iterator j = ranks.iterator(); j.hasNext(); )

        sortedDeck.add(new Card(i.next(), j.next()));

这段代码不会按照我们设想的那么工作,因为每次第二个for语句的执行都会引发i.next()的执行,实际上我们没有达到对i进行遍历的目的,而且可能会引起一个NoSuchElementException异常。

解决的一个办法是改写成如下代码:

for (Iterator i = suits.iterator(); i.hasNext(); ) {

    Suit suit = (Suit) i.next();

    for (Iterator j = ranks.iterator(); j.hasNext(); )

        sortedDeck.add(new Card(suit, j.next()));

}

利用java语言的新特性,我们可以这样写:

for (Suit suit : suits)

    for (Rank rank : ranks)

        sortedDeck.add(new Card(suit, rank));

这段代码是不是很漂亮?

时间: 2024-09-26 22:59:28

J2SE新特性---循环语句的增强的相关文章

Spring4.1新特性——Spring缓存框架增强

本文其实不应该算作Spring4.1新特性,该测试框架目前是独立于Spring Framework发展的.Spring MVC Test HtmlUnit提供了Spring MVC测试框架.HtmlUnit. WebDriver.Geb的集成测试,简化页面自动化测试,利用这些技术可以完成无需启动服务器即可进行页面测试.自动化页面/页面流程测试.Javascript测试.Mock Service提高集成测试速度.本文只会带你使用HtmlUnit和WebDriver进入基本的页面自动化测试一览,不会

J2SE新特性 Windows下读取网卡物理地址

j2se|window 个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等. package com.kuaff.jdk5package;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;public class ProcessBuilderShow{ p

Spring4.1新特性——静态资源处理增强

Spring 4.1对静态资源处理进行了细化,ResourceHttpRequestHandler细分为两大部分:ResourceResolver和ResourceTransformer. Java代码   public interface ResourceResolver {     Resource resolveResource(HttpServletRequest request, String requestPath, List<? extends Resource> locatio

WebSphere Application Server V7中的新特性

IBM WebSphere Application Server V7 中包括一些功能强大的新特性和显著的增强功能,以帮助您实现更高的工作效率.更强的安全性.更紧密的集成和简化的管理.了解这个新版本中的关键特性,这些特性使得该版本可以为您的面向服务的体系结构提供灵活而可靠的基础. 引言 IBM WebSphere Application Server 为面向服务的体系结构(Service Oriented Architecture,SOA)应用程序交付敏捷.可靠的基础,以使应用程序与业务和 IT

01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型

一.eclipse工具的使用 1. java代码的位置        1) 选择工作空间 workspace  选择一个文件夹存放程序(代码) 不要用中文和空格        2) 新建一个java 工程(Project)        3) 建包建类   2. 快捷键        alt + / :代码自动补齐,需要配置的               打开preferences(首选项), 搜keys,打开快捷键配置面板               搜 alt+/ ,取消绑定        

J2SE 1.5版本的新特性一览

j2se 到了2003的年末,J2SE1.5的beta版本就将发布了.这次发布和现在已经发布的J2SE1.4的两个更新1.4.1和1.4.2都如2003年的JavaOne大会预期的发布.如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会的简要内容. J2SE 1.4.1 and 1.4.2 Releases 当1.4.1(开发代号"Hopper")在2002年9月发布以及它的后续版本1.4.2(开发代号"Mantis")在2003年1月如期发布的时候,

Oracle 10G 新特性——增强的CONNECT BY子句

      为了更好的查询一个树状结构的表,在Oracle的PL/SQL中提供乐一个诱人的特性--CONNECT BY子句.它大大的方便了我们查找树状表:遍历一棵树.寻找某个分支--,但还是存在一些不足.在Oracle 10G,就对这个特性做了增强.下面就举例说明一下: CONNECT_BY_ROOT 一张表,有多颗子树(根节点为0),现在我想知道每个节点属于哪个子树.举例:铃音目录结构下有多个大分类:中外名曲.流行经典.浪漫舞曲--,每个大类下面又有多个子类,子类下面还可以细分.那现在想要知道

J2SE 1.5版本的新特性一览_Java编程

文章来源:互联网 作者:supertoto(翻译)/CSDN.Net 到了2003的年末,J2SE1.5的beta版本就将发布了.这次发布和现在已经发布的J2SE1.4的两个更新1.4.1和1.4.2都如2003年的JavaOne大会预期的发布.如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会的简要内容. J2SE 1.4.1 and 1.4.2 Releases 当1.4.1(开发代号"Hopper")在2002年9月发布以及它的后续版本1.4.2(开发代号"

jQuery 1.4:15个新特性和优化增强

jQuery 1.4 最近发布了. 超乎大家的预期,这次并非简单的修修补补,1.4 包含了很多新特性.功能增强和性能提升!本文即向您介绍这些可能对你十分有用的新特性和优化增强. 你可以立刻下载jQuery 1.4试用: http://code.jquery.com/jquery-1.4.js 1. 传参给 jQuery(-) 之前,jQuery可以通过 attr 方法设置元素的属性,既可传属性的名和值,也可以是包含几组特定 属性名值对 的 对象.在 jQuery 1.4 中,你可以把一个参数对象