栗悟飯とカメハメ波

秋葉系ニートブログ。

【Javaメモ】配列作成から拡張for文、多次元配列まで。

【事前知識】
一定のルールに従ってデータを格納する形式:データ構造
→代表的なもの:配列(同じ種類のデータを並び順でぶち込む箱)
→箱の一つ一つは要素、各要素の0,1,2などの数字は添え字


【配列作成】

public class Main {
  public static void main(String[] args) {
      int[] scores;   //配列変数を宣言
      scores=new int[5];   //int型要素を5つ作成
  }
}


【配列の長さを調べる】

public class Main {
  public static void main(String[] args) {
      int[] scores=new int[5];   //宣言、要素作成、代入同時に行う
      int num=scores.length;   //全要素数取得
      System.out.println("要素の数:"+num);
  }
}


【配列の初期化について】
普通にint x;と変数を定義してSystem.out.println(x);としてもxは空の変数であるので初期化できていないことからエラーになるが配列は自動的に初期化されるのでこのようなことがない。

例)int[] scores=new int[5];としてSystem.out.println(scores[0]);と打っても配列の0は空だがエラーにならず、そのまま0が出力される


【省略記法】
配列作成と初期化を同時に行う

int[] scores1=new int[]{10,20,30,40,50};
int[] scores2={10,20,30,40,50};

注)newが隠れていることを忘れないように。


【for文を使用した配列】
合計点と平均点の出力

public class Main{
  public static void main(String[] args) {
    int[] scores={20,30,40,50,80};
    int sum=0;
    for(int i=0; i<scores.length; i++) {
     sum+=scores[i]
    }
    int avg=sum/scores.length;
    System.out.println("合計点:"+sum);
    System.out.println("平均点:"+avg);
  }
}


【switch文と配列を組み合わせてみる】

public class Main {
  public static void main(String[] args) {
    int[] seq=new int[10];
    for(int i=0; i<seq.length; i++) {
     seq[i]=new java.util.Random().nextInt(4);
    }
    for(int i=0; i<seq.length; i++) {
     switch(seq[i]) {
       case 0: 
         System.out.println("A");
        break;
       case 1:
         System.out.println("T");
        break;
       case 2:
         System.out.println("G");
        break;
       case 3:
         System.out.println("C");
        break;
     }
    }
  }
}

注)switch文のところを消してchar[] base={'A','T','G','C'};を作り、System.out.println(base[seq[i]]);だけでコンパクトに同じ出力をすることができますが、ここではわざとswitch文を使っています。


【拡張for文】

public class Main {
  public static void main(String[] args) {
    int[] scores={20,30,40,50,80};
    for(int value:scores) {
      System.out.println(value);
    }
  }
}


【多次元配列】

public class Main {
  public static void main(String[] args) {
    int[][] scores={{40,50,60},{80,60,70}};
    System.out.println(scores.length);   //2が出力される
    System.out.println(scores[0].length);   //3が出力される
  }
}