`
冯瑞芳
  • 浏览: 27395 次
  • 性别: Icon_minigender_2
  • 来自: 河南
文章分类
社区版块
存档分类
最新评论

For循环新特性

JDK 
阅读更多

自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。

自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。

典型应用:

   Integer  i = 1 ;  //装箱   其中Integer 是一个类,i是引用数据类型 1是基本数据类型

   List list =new list() ; list.add(2);  //装箱

   int i=Integerlist.get(0) ;  //拆箱

for循环的新特性

引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!

因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterable接口的集合类上

语法格式:                                              

for(变量类型 变量 :需迭代的数组或集合){

}

举例如下:

public class Demo03 {

//for循环的新特性  只能用于 数组   集合 实现Iterable接口的集合

@Test

public void test(){

Integer arr[] = {100,100,18,90,89};

//jdk1.4之前

for (int i = 0; i < arr.length; i++) {

System.out.print("   "+arr[i]);

}

System.out.println();

//jdk1.5for增强版

for(int i:arr){

System.out.print("   "+i);

}

//数组的下标从0开始  

}

//list接口

@Test

public void testList(){ //实现了Iterator接口的集合

List list = Arrays.asList("12","12","abc","cd");

for (int i = 0; i < list.size(); i++) {

String temp = (String)list.get(i);

System.out.print("   "+ temp);

}

//采用迭代器输出

Iterator it = list.iterator();

while(it.hasNext()){

String tem= (String)it.next();

System.out.print(tem+"   " );

}

//jdk 1.5

for(Object obj:list){

String str = (String)obj;

System.out.print("  "+str);

}

}

//jdk1.5 for 只能够取值 不能够改变值

@Test

public void testOut(){

List list = Arrays.asList(1,2,3,4,5);

for(Object obj:list){

Integer temp = (Integer)obj;

temp=100;  //不能够影响到集合中

}

for (Object obj : list) {

System.out.println((Integer)obj);

}

}

}

注意事项:

数组的下标从0开始,数组中没有length方法,只有length属性, String 则刚好相反,只有length属性,没有length方法

Arrays.asList()相当于new List()  ,Arrays.asList()不能使用基本数据类型的数组作为可变参数,另外,可变参数可以当做数组来实现

<!--EndFragment-->
分享到:
评论

相关推荐

    JDK1.5中增强for循环

    JDK1.5新特性中的最重要的一点。让你彻底明白增强for循环的强大和方便

    java新特性之for循环最全的用法总结

    下面小编就为大家带来一篇java新特性之for循环最全的用法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    详细介绍JDK1.5的各种新特性

    “JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-else 循环,自动装包/拆包,枚举,可变参数, 静态导入

    jdk1.5的新特性

    从增强的for循环到诸如泛型(generic)之类更复杂的特性,都将很快出现在您所编写的代码中。我们刚刚完成了一个基于Java 5.0的大型任务,而本文就是要介绍我们使用这些新特性的体验。本文不是一篇入门性的文章,而是对...

    ES6新特性二:Iterator(遍历器)和for-of循环详解

    for-of工作原理:迭代器有一个next方法,for循环会不断调用这个iterator.next方法来获取下一个值,直到返回值中的 done属性为true的时候结束循环。 ① 在ES6之前 var arr = [1,2,3,4,5,6]; arr.name = 'a'; for (var...

    JAVA jdk1.5的新特性

    1.增强的for循环【foreach{}迭代数组或集合】 格式:for(变量的类型 变量名:集合变量名 ){} 注意:集合变量可以是数组或实现了Iterable接口的集合类 2.静态导入(这样调用一个静态方法的时候就不需要【类名....

    jdk7新特性jdk8新特性

    # jdk7新特性 ## try-with-resources 是一种声明了`一种或多种资源的try语句`。资源是指在程序用完了之后必须要关闭的对象。try-with-resources语句保证了每个声明了的`资源在语句结束的时候都会被关闭`。任何实现...

    jdk5.0新特性ppt

    jdk5.0新特性 包括泛型,增强的for循环,自动的封箱和拆箱

    JDK1.5新特性

    变长参数 范型 枚举类型 增强for循环 自动装箱 变长参数 范型 枚举类型 增强for循环 自动装箱

    Android之循环队列操作

    队列特性:先进先出(FIFO)——先进队列的元素先出队列。下面以一个简单的例子实现循环队列的操作。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言。

    java使用for循环输出杨辉三角

    杨辉三角形由数字排列,可以把它看做一个数字表,其基本特性是两侧数值均为1,其他位置的数值是其正上方的数字与左上角数值之和,下面是java使用for循环输出包括10行在内的杨辉三角形

    JAVA5新特性介绍.zip

    JDK1.5新特性:自动拆装箱、泛型、增强for循环、静态方法导入、可变参数、枚举

    jdk5.0新特性汇总(超级详细)

    加强for循环,静态导入,枚举,泛型,反射,注解,类加载器,代理等。张孝祥总结,绝对经典。

    python中关于for循环的碎碎念

    同样的,我也要你找到一种场景——除了用for循环以外,用其他方法写都太难。请分享你的发现,我非常想听到这些 距离我开始探索超棒的Python语言特性已经有一段时间了。一开始,这只是我给自己的一个挑战,练习使用更...

    Python中的for i in range(range()函数的for循环)如何使用,详细介绍

    range函数的for循环1.定义2.两种形式3.可理解性例子4.range函数的特性详述4.1 左闭右开4.2 开始值默认为04.3 步长值默认为14.4 range函数的反向输出5.与列表list的使用6.range与list的区别 1.定义 range是一个函数,...

    C++11的for循环,以及范围Range类的简单实现

    C++11支持range-based for循环。这是一个很方便的特性,能省挺多代码。以下代码就能很方便的遍历vector中的元素,并打印出来: std::vector&lt;int&gt; int_vec; int_vec.push_back(1); int_vec.push_back(2); //如果要...

    JDK1.5新特性介绍

    “JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的...

    深入理解C++11:C++11新特性解析与应用

    1364.3.3 decltype推导四规则 1404.3.4 cv限制符的继承与冗余的符号 1434.4 追踪返回类型 1454.4.1 追踪返回类型的引入 1454.4.2 使用追踪返回类型的函数 1464.5 基于范围的for循环 1504.6 本章小结 153第5章 提高...

    Objective-C 2.0的新特性与运行时编程

    2. Objective-C 2.0的新特性: (1.)属性访问器 (2.)for-each循环 (3.)GC机制 (4.)协议的必选与可选方法 3. Objective-C 2.0的运行时编程: (1.)isa指针 (2.)SEL 与IMP (3.)objc_msgSend函数 (4.)动态方法解析 (5.)...

Global site tag (gtag.js) - Google Analytics