配列


配列とは

配列とは
  
同一種類の複数データを順序を付けて格納する箱
 
注意点
  
・順序付けは、「0」からスタートする
  
・1つの箱には同一種類のデータしか格納出来ない

配列の作成

作成順序
  
①配列変数の作成(箱の作成)
要素のデータ型[] 配列変数名;
  
②要素の作成と代入(中身の作成)
配列変数名 = new 要素のデータ型[要素数] ; ※newを使用する場合
箱と中身の作成を同時に行う場合
要素のデータ型[] 配列変数名 = new 要素のデータ型[要素数] ;

配列の初期値

変数と違って、配列は初期値が決まってる!
初期値は以下の通り
データの種類           初期値
数値型 0
boolean型 false

配列の初期化

以下の表記で配列の新規作成と初期化が出来る

  
省略した書き方①

要素のデータ型[] 配列変数名 = new 要素のデータ型{初期値1,初期値2,初期値3,初期値4,・・・} ;

 

省略した書き方②

要素のデータ型[] 配列変数名 = {初期値1,初期値2,初期値3,初期値4,・・・} ;

配列をfor文で使用する

使用例
int[] score = {20,30,40,50,80};
    for (int i = 0; i<score.length; i++) {
      System.out.println(score[i]);
    {
・20、30、40、50、80が順に表示される
score.lengthには「5」が入る
iには「0〜4」までが入る
書き方

for(int i = 0; i<配列変数名.length; i++)

拡張for文

書き方

for(要素の型 任意の変数名:配列変数名){
}

→ループが1週する度、変数の中身が更新される

配列が裏でどのように処理されているか

まずはじめに・・・

int[] score =new int{5}が実行された場合

 ①メモリ上にint型の要素を5つ持つ配列が作成される

 ②int[]型の配列要素、scoreがメモリ上に作成される

 ③scoreに配列の先頭(0)の、メモリ上の位置情報が代入される
その後・・・

プログラム上でscore{2}が実行された場合`

 ④scoreの先頭(0)の、メモリ上の住所が検索される

 ⑤先頭から{2}個目のメモリの読み書きをする

ガベージコレクション

通常、ifブロック内で作成した変数はブロックが消えたら適用されない。
newで確保された要素たちは、ブロックが終了しても消えずに、メモリ上にゴミとなって残り続ける。
これらを自動で削除してくれるJavaの機能が、ガベージコレクション。

null値

      if ( b== true) {
        int[] i = {1,2,3};
        i=null;
       }

以上の様に、null値を代入することで、変数の値が格納されたメモリへ参照しなくなる

多次元配列

2次元配列の宣言

要素の型[][] 配列変数名 = new 要素の型[行数][列数]

2次元配列の要素の利用時の記載方法

配列変数名[行の番号][列の番号]

2次元配列の初期化方法

要素の型[][] 配列変数名 = {//1行目{//1列目 要素数 //2列目 要素数 //3列目要素数・・},//2行目{},//3行目・・・}