JavaののListの初期化方法ってしっかり覚えていますか?
Listの初期化でまとめて値を渡したい
Listの初期化でサイズを指定して初期化したい
この記事では、Listの初期化について以下の内容で解説していきます。
- 【基礎】new演算子とArrayListで空のListを用意する方法
- 【基礎】asListを使って初期化時に値を追加する方法
- 【基礎】addを使って初期化時に値を追加する方法
- 【発展】サイズを指定して初期化する方法
Listの初期化についてわかりやすく解説していますので、ぜひ参考にしてください!
なお、Javaの記事については、こちらにまとめています。
Listを初期化する方法
new演算子とArrayListで空のListを用意する方法
まず初めに空のListの作り方を解説します!
List<データ型名> オブジェクト名 = new ArrayList<データ型名>();
Listを宣言するには、Listの要素のデータ型を指定する必要があります。
Listの要素のデータ型は例えば、Integer型やString型などのデータ型になります。ListのオブジェクトにはArrayListクラスなどで生成したインスタンスを格納します。
インスタンスを生成する際には、new演算子を用います。
例えばString型の要素をもつListの場合は、以下のように記述します。
List<String> list = new ArrayList<String>();
これで空のListが用意できました。
初期化時に値を追加する方法についてみていきましょう!
asListを使って初期化時に値を追加する方法
一つ目はasListを使う方法です!
以下のように記述します。
List<データ型名> オブジェクト名 = new ArrayList<データ型名>(Arrays.asList(要素[0], 要素[1], ・・・));
サンプルコードで確認しましょう。
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = new ArrayList<String>(Arrays.asList("Apple", "Orange", "Melon")); for(int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }
実行結果:
Apple Orange Melon
これでListの初期化と同時に文字列を追加することができました。
ここで注意があります。
以下のような書き方で初期化した場合は、Listが固定サイズになります。
addやremoveで要素を追加したり削除することができなくなりますので、注意しましょう!
間違えると困ったことになります・・・
List<String> list = Arrays.asList("Apple", "Orange", "Melon");
Arrays.asList() が返すインスタンスは、java.util.Arraysの内部クラスのArrayList です。
java.util.ArrayListとは別のモノになります。
addを使って初期化時に値を追加する方法
二つ目はaddで追加する方法です!
List<データ型名> オブジェクト名 = new ArrayList<データ型名>(){ { add(要素[0]); add(要素[1]); ・・・ } };
こちらもサンプルコードで確認しましょう。
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = new ArrayList<String>(){ { add("Apple"); add("Orange"); add("Melon"); } }; for(int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }
実行結果:
Apple Orange Melon
この方法でも初期化と同時にいくつかの値を追加する事ができます。
初期化した後にListにデータを追加する方法は次の記事で解説しています。
サイズを指定して初期化する方法
要素を追加したときに初期化で設定したサイズを超える場合は、サイズの拡張処理が入り動作が遅くなるため注意が必要です。
要素数が多く、大きなサイズが必要になることがわかっている場合は、次のように大きなサイズをあらかじめ指定して初期化することで動作が遅くなることを避けることができます。
List<データ型名> オブジェクト名 = new ArrayList<データ型名>(要素数);
例えばListの要素のデータ型がString型で、要素数が1000の場合は以下のように記述します。
List<String> list = new ArrayList<String>(1000);
リストのサイズを指定しない場合はデフォルトのサイズの10が割り当てられます。
new演算子での初期化について知りたい方へ
Listの他にもString型やDate型もnew演算子を使ってオブジェクトを初期化します。
オブジェクトに格納するインスタンスを生成する際に使用するコンストラクタの使い方については、こちらで詳しく解説しています。
参考にしてくださいね!
String型の例
String型でnew演算子を使った初期化については、こちらで詳しく解説していますので参考にしてくださいね!
Date型の例
Date型でnew演算子を使った初期化については、こちらで詳しく解説していますので参考にしてくださいね!
まとめ
いかがでしたか?
今回はListの初期化について解説しました!もしListの初期化を忘れてしまったらこの記事を確認してください!