现在的位置: 首页 > 综合 > 正文

26、增强的for循环和自动装箱拆箱

2018年02月06日 ⁄ 综合 ⁄ 共 981字 ⁄ 字号 评论关闭
1、增强的For循环:
int[] arr = {1,2,3,4,5,6};
for(int i = 0; i< arr.length;i++)
{
      System.out.println(arr[i]);
}
//增强的for循环
for(int element : arr)
{
    System.out.println(element);
}

 

List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
for(String element : list)
{
      System.out.println(elemnet);
}

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

2、自动装箱/拆箱(Autoboxing/unboxing)

      自动装箱/拆箱大大方便了基本类型数据和它们包装类的使用。
      自动装箱:基本类型自动转为包装类.(int >> Integer)
      自动拆箱:包装类自动转为基本类型.(Integer >> int)

int a = 3;
Collection<integer> c = new ArrayList<Integer>();
c.add(3);   //自动将int类型3转换为Integer类型并放到集合当中
c.add(a + 3);
for(Integer i : c)
{
      System.out.println(i);
}

3、Integer类有一个缓存,他会缓存介于-128~127之间的所有整数。

Integer i1 =100;Integer i2 = 100;  i1 == i2为true。

Integer i1 =200;Integer i2 = 200;  i1 == i2为false。

4、可变参数

public static int sum(int... nums)
{
   int sum = 0;
   for(int num : nums)
   {
      sum +=num;
   }
   return sum;
}

 

可变参数:本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散值。

可变参数必须作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。

 

 

 

 

抱歉!评论已关闭.