Javaで固定長のリストを生成する方法について記載します。
固定長のリストを生成する方法
Arraysクラスの、asList メソッドを使用します。
構文
asList( 配列 )
戻り値
引数に指定した値の型に対応したListが返ります。
List<T>
実行例( 固定長リストの生成 )
1 2 3 4 5 6 7 8 |
// 配列変数からリストを生成 Integer[] intArray = {1,2,3,4,5}; List<Integer> intList1 = Arrays.asList( intArray ); System.out.println( intList1 ); // [1, 2, 3, 4, 5] // 引数に直接値を設定して生成 List<Integer> intList2 = Arrays.asList(1,2,3,4,5); System.out.println( intList2 ); // [1, 2, 3, 4, 5] |
生成した固定長リストは、要素を更新することができます。
実行例( 固定長リストの要素を更新 )
1 2 3 4 5 6 |
// 固定長リストを生成 List<Integer> intList = Arrays.asList(1,2,3,4,5); // インデックス0の要素を 11 に更新 intList.set(0, 11); System.out.println( intList ); // [11, 2, 3, 4, 5] |
先ほどの例のように要素の更新は可能ですが、要素の追加や削除を行うと
例外( java.lang.UnsupportedOperationException )が発生します。
実行例( 固定長リストへ追加や削除はできない )
1 2 3 4 |
List<Integer> intList = Arrays.asList(1,2,3,4,5); intList.add(6); // 要素の追加( 例外発生 ) intList.remove(0); // 要素の削除( 例外発生 ) |
もし、固定長リストに要素の追加や削除を行いたい場合は、次のように新しいリスト生成して行います。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 固定長リストを生成 List<Integer> intList1 = Arrays.asList(1,2,3,4,5); // 固定長リストの変数を引数に、新しいリストを生成して要素の追加や更新を行う List<Integer> intList2 = new ArrayList<>(intList1); // 要素の追加 intList2.add(6); System.out.println( intList2 ); // [1, 2, 3, 4, 5, 6] // 要素の削除 intList2.remove(0); System.out.println( intList2 ); // [2, 3, 4, 5, 6] |