【Java】asListを使って配列(Array)からリスト(List)を作成する!
配列(Array)からリスト(List)を作成する場合にはArraysクラスのasListメソッドを使用します。
ArraysクラスのasListメソッドは、指定された配列に基づく固定サイズのリストを返すメソッドです。
そのため、asListメソッドは配列に格納した要素をリストにも要素として格納したい場合や、配列で要素を操作し、最終的にはリストとして表示したいと思った場合にも使われ、とても便利です。
今回はArraysクラスのasListメソッドを使って以下の場合で配列(Array)からリスト(List)を作成します。
⚫︎ 要素が存在する状態で配列からリストを作成する場合
⚫︎ 要素が空の状態で配列からリストを作成する場合
⚫︎ 要素にnullが入っている状態で配列からリストを作成する場合
目次
asListメソッドとは
ArraysクラスのasListメソッドは、指定された配列に基づく固定サイズのリストを返すメソッドとなります。
asListメソッドの書き方
asListメソッドの構文は下記となります。
1 |
Arrays.asList(配列); |
asListの()の中に配列を指定することで、指定した配列からリストを作成して返します。
配列からリストを作成するサンプルコード
配列からリストを作成するサンプルコードを紹介します。
配列に要素が存在する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// 配列からリストを作成する import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 配列を作成する String[] array1 = {"徳島県", "香川県", "愛媛県", "高知県"}; // 配列をリストに変換する List<String> list1 = Arrays.asList(array1); //リストの内容を表示する System.out.println(list1); } } |
出力結果
[徳島県, 香川県, 愛媛県, 高知県]
配列に要素が存在する為、その要素からリスト作成しています。
配列に要素が存在しない場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 配列からリストを作成する import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 配列を作成する String[] array2 = {}; // 配列をリストに変換する List<String> list2 = Arrays.asList(array2); //リストの内容を表示する System.out.println(list2); } } |
出力結果
[]
配列に要素が存在しない場合、空のリストを作成します。
配列にnullが入っている場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 配列からリストを作成する import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 配列を作成する String[] array3 = {"徳島県", "香川県", "愛媛県", null}; // 配列をリストに変換する List<String> list3 = Arrays.asList(array3); //リストの内容を表示する System.out.println(list3); } } |
出力結果
[徳島県, 香川県, 愛媛県, null]
配列にnullが入っている場合でもnullを含めてリストを作成します。
今回のポイント
asListで配列からリストを作成
リスト内に特定の要素が存在するか調べるにはListクラスのcontains()メソッドを使用する
⚫︎ ArraysクラスのasListメソッドで配列からリストを作成する
⚫︎ asListメソッドは配列に要素が存在しない場合空のリストを作成する
⚫︎ asListメソッドは配列にnullが入っている場合でもnullを含めてリストを作成する
⚫︎ asListメソッド後のリストはListクラスのsetメソッドでの要素の上書きは可能
補足
asListで作成したリストには要素を追加できない
ArraysクラスのasListメソッドで作成したリストは、要素を追加・削除することができず、要素を追加・削除すると、「UnsupportedOperationException」例外が発生します。
例外が発生する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// 配列からリストを作成する import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 配列を作成する String[] arrayA = {"徳島県", "香川県", "愛媛県", "高知県"}; // 配列をリストに変換する List<String> list = Arrays.asList(arrayA); // リストに追加 listA.add("岡山県"); //リストの内容を表示する System.out.println(listA); } } |
出力結果
Exception in thread “main” java.lang.UnsupportedOperationException
配列から作成したリストに要素を追加したい場合は、ArraysクラスのasListメソッドで作成されたリストを元に新たにリストを作成します。
例外が発生しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// 配列からリストを作成する import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class Main { public static void main(String[] args) throws Exception { // 配列を作成する String[] arrayA = {"徳島県", "香川県", "愛媛県", "高知県"}; // 配列をリストに変換する List<String> listA = new ArrayList<String>(Arrays.asList(arrayA)); listA.add("岡山県"); //リストの内容を表示する System.out.println(listA); } } |
出力結果
[徳島県, 香川県, 愛媛県, 高知県, 岡山県]
配列から作成したリストを操作する場合は気を付けましょう。
関連記事
リスト(List)を配列(Array)に変換するtoArrayメソッドについてはこちらをご参照ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。