【Java】Javaの配列の定義や間違いやすいポイントをまとめてみました!

Javaで配列の使い方を私は結構忘れてしまうので、定義の仕方やポイントについてまとめておこうかと思います。


ListやMapが便利ですから、配列って意外と使わなかったりしますよね・・・

Javaにおける配列の定義の仕方

f:id:koko55120:20210518225300j:plain

Javaの場合は、最初に扱うデータ型を指定して配列を宣言します。
Javaの配列の定義の仕方は以下の通りです。

データ型[] 変数名 = new データ型[要素数];

Javaでの配列の定義は、配列型の変数を定義して、newでオブジェクトで参照させる形になります。


例えばint型の値を使う配列を宣言する場合は以下のように定義します。

int[] numlist = new int[5]

これは要素数5のint型の配列を宣言できました。


厳密に言うと配列は宣言と作成で別れています。

int[] numlist;

これは配列の宣言です。

numlist = new int[5];

これは配列を作成しています。new データ型で配列を生成して宣言した配列(変数)が参照します。

Javaの配列の注意ポイント

f:id:koko55120:20210518231918j:plain

配列の初期化と要素の指定は同時にできません

配列を初期化するのと、要素を指定するのは同時の文ではできません。

例えば、次の宣言はエラーになります。

int array[] = new int[3] {10,20};

}

この例は、new int[3]で要素数3の配列を生成した後、{10,20}で初期化しているのはエラーになってしまいます。

Javaの配列は参照型である

Javaの配列で難しいポイントは、配列は参照型です。
宣言した配列変数に対して配列のデータがそのまま入るわけではなく、実体の配列の場所を変数が持っているという仕組みになっています。


これが、Javaの基本データ型と参照型の難しいところですよね。


配列変数は参照先を持っているので他の配列変数にも同じ、配列のアドレスを渡すこともできます。

int[] numlist = new int[3];

numlist[0] = 100;
numlist[1] = 111;
numlist[2] = 222;

int[] tmplist;
tmplist = numlist;  //tmplistにnumlistが参照している配列のアドレスが渡される

System.out.println(data[1]);  
System.out.println(other[1]); 

出力結果は同じ

111
111

これはjavaの配列でわかりづらいポイントですよね。

wataru55120.hatenablog.jp

JavaプログラマBronze SE 7/8 オラクル認定資格試験学習書 (オラクル認定資格教科書) [ 山本道子(プログラミング) ]

価格:3,520円
(2021/5/25 21:27時点)
感想(1件)



JavaプログラマBronze SE 7/8 オラクル認定資格試験学習書 (オラクル認定資格教科書) [ 山本道子(プログラミング) ]

価格:3,520円
(2021/5/25 21:29時点)
感想(1件)