0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

リストの初期化とnull代入

Last updated at Posted at 2022-11-24

目次

1.リスト初期化
2.null代入
3.おまけ

1. リスト初期化

参照型の変数は「参照」を保持しています。
「参照」とはメモリ上(一時的にデータを保管しておく場所)の、値が格納されている場所のことで、
オブジェクト(変数)の生成はnew演算子を使っておこないます。

ではまずはじめに、さかなリストを作成します。

    // さかなリスト
    List<String> fishLsit = new ArrayList<String>();
    fishLsit.add("あじ");
    fishLsit.add("ししゃも");
    // 出力
    System.out.println("①さかなリスト:" + fishLsit.toString());

出力結果は以下の様になります。
①さかなリスト:[あじ, ししゃも]

つぎに、リストの初期化をおこないます。

    // リスト初期化
    fishLsit = new ArrayList<String>();
    // 出力
    System.out.println("②さかなリスト初期化:" + fishLsit.toString());

初期化後の出力結果は以下の様になります。
②さかなリスト初期化:[]
初期化され、リストの中身が空になっています。

つぎに、初期化後のリストに要素を追加してみます。

    fishLsit.add("しゃけ");
    fishLsit.add("さんま");
    // 出力
    System.out.println("③要素追加:" + fishLsit.toString());

要素追加後の出力結果は以下の様になります。
③要素追加:[しゃけ, さんま]

初期化後に追加した要素のみがリストに入っています。
初期化していない場合は [あじ, ししゃも, しゃけ, さんま] が要素となります。

2. null代入

ではここで、ここまで作成したさかなリストにnullを代入してみます。

    // null代入
    fishLsit = null;
    // 出力
    System.out.println("④null代入:" + fishLsit.toString());

参照型の変数がnullだと、参照が何もない状態となり、
fishLsitでjava.lang.NullPointerExceptionになってしまいます。

3. おまけ

1.でリストの初期化をおこないましたが、初期化しない場合の動きをみていきたいと思います。
今度はあたらしく、花リストを用意します。

    // 花リスト
    List<String> flowerLsit;
    // 出力
    System.out.println("⑤花リスト:" + flowerLsit.toString());

これだと「ローカル変数 flowerLsit が初期化されていない可能性があります」
というコンパイルエラーになります。これはnullが入る可能性があることが原因のため、
nullにならないよう、やはり初期化が必要ということになります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?