您的位置:首页 > 编程语言 > Java开发

[2014-09-02]JAVA笔记_增强的for循环、自动拆箱装箱、可变参数

2014-09-02 17:53 375 查看
一、 增强的 for 循环

package com.bob.generics;

public class ForTest {
public static void main(String[] args) {
int[] arr = {1, 2, 3};

//旧式方式
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
System.out.println("----------------------");
//新式方式
for(int i : arr){
System.out.println(i);
}
System.out.println("----------------------");

}
}
·当遍历集合或数组是,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的 for 循环,因为它会丢失下标信息。

二、 自动拆箱、装箱(Autoboxing/Unboxing)

          · Integer 类有一个缓存,它会缓存介于 -128~127之间的整数。

package com.bob.generics;

import java.util.ArrayList;
import java.util.Collection;

public class ForTest {
public static void main(String[] args) {
int[] arr = {1, 2, 3};

//旧式方式
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
System.out.println("----------------------");
//新式方式
for(int i : arr){
System.out.println(i);
}
System.out.println("----------------------");

int a = 3;

Collection<Integer> list = new ArrayList<Integer>();

list.add(new Integer(3));

list.add(3); //自动装箱:将int类型的3转换为Integer类型并放到集合中

list.add(a + 3); //将6的值转换为Integer放入集合

for(Integer in : list){
System.out.println(in);
}

System.out.println("----------------------");

ArrayList li = (ArrayList)list;
for(int i = 0; i < li.size(); i++){
System.out.println(li.get(i));
}

}
}


三、 可变参数(Varargs)
        ·可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是方法声明中的最后一个参数。

package com.bob.generics;

public class TestVarargs {

private static int sum(String str, int... nums){	//可变参数只能放最后,且只能一个

System.out.println(str);

int sum = 0;

for(int num : nums){
sum += num;
}

return sum;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
int result = sum("a", new int[]{1, 2});		//可变参数其实是一个数组

System.out.println(result);

result = sum("b", 1, 2, 3, 4);

System.out.println(result);

}

}
总结: 可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可使传递数组的对象。但是如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。 可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  可变参数
相关文章推荐