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

来源:互联网 发布:数据传输线 编辑:程序博客网 时间:2024/06/06 05:03

一、 增强的 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 stubint result = sum("a", new int[]{1, 2});//可变参数其实是一个数组System.out.println(result);result = sum("b", 1, 2, 3, 4);System.out.println(result);}}
总结: 可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可使传递数组的对象。但是如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。 可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。









0 0