26、強化されたforサイクルと自動梱包解体

2848 ワード

[java] view plain copy print ?
1、強化されたForサイクル: 
1、   For  :

[java] view plain copy print ?
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); 
  • 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);
    }
    

    [java] view plain copy print ?
    List list = new ArrayList(); 
  • list.add("a"); 

  • list.add("b"); 
  • list.add("c"); 

  • for(String element : list) 

  •       System.out.println(elemnet); 
  • 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)
    [java] view plain copy print ?
    int a = 3; 
  • Collection c = new ArrayList(); 

  • c.add(3);  //intタイプ3をIntegerタイプに自動的に変換してセットに入れる 
  • c.add(a + 3); 

  • for(Integer i : c) 

  •       System.out.println(i); 
  • 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;  i 1==i 2はtrueである.
    Integer i1 =200;Integer i2 = 200;  i 1==i 2はfalseです.
    4、可変パラメータ
    [java] view plain copy print ?
    public static int sum(int... nums) 

  •    int sum = 0; 
  •    for(int num : nums) 

  •    { 
  •       sum +=num; 

  •    } 
  •    return sum; 

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

    可変パラメータ:本質的には配列です.可変パラメータを宣言するメソッドでは、離散的な値を渡すことも、配列オブジェクトを渡すこともできます.ただし、メソッドのパラメータを配列として定義すると、離散的な値を渡すことはできません.
    可変パラメータは、メソッドパラメータの最後のパラメータとして使用する必要があります.すなわち、1つのメソッドが2つ以上の可変パラメータを持つことはできません.