【Java】3分でマスター!addを使ってリスト(List)に要素を追加する!
リスト(List)に要素を追加する場合にはListクラスのaddメソッドを使用します。
Listクラスのaddメソッドは、単数の値をリストに追加するメソッドです。
リストを扱う場合には必ず扱う基本的なメソッドになりますが、3分あればすぐにマスターできますのですぐに覚えておきましょう。
今回はListクラスのaddメソッドを使って以下の内容でリスト(List)に要素を追加します。
⚫︎ リストの最後に要素を追加する場合
⚫︎ インデックスを指定してリストに要素を追加する場合
⚫︎ リストの要素数以上のインデックスを指定する場合
目次
addメソッドとは
ListクラスのaddAllメソッドは、1つの値をリストの要素としてに追加するメソッドとなります。
Listクラスのメソッドにはaddメソッドとよく似たaddAllメソッドがありますが、addAllメソッドは「複数の要素を追加する」メソッドです。
その為、単数追加の場合はaddメソッド、複数追加の場合はaddAllメソッドと認識しておきましょう。
addメソッドの書き方
addメソッドの構文は下記となります。
1 |
list.add(インデックス, 追加する要素); |
パラメータ
⚫︎ インデックス:
どこに追加するのか場所をインデックスで指定する。(スタートは0から)
⚫︎ 追加する要素:
追加したい要素を指定する。
addの()に第1パラメータをインデックス、第2ラメータを追加する値として指定することでリストに要素を追加します。
例えば「list1.add(1, “あ”);」とすると、list1の1番目に割り込みという形で「あ」が追加されます。
その為、list1の残りの要素は「あ」後ろに格納されます。
また、インデックスを指定しない場合は、リストの一番後ろに追加されます。
リストに要素を追加するサンプルコード
リスト(List)の要素を上書きするサンプルコードを紹介します。
リストの最後に要素を追加する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// リストに要素を追加する import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // リストを作成 List<String> listA = new ArrayList<String>(); System.out.println("初期状態:" + listA); //リストの最後に要素を追加 listA.add("あいうえお"); listA.add("かきくけこ"); listA.add("さしすせそ"); System.out.println("要素追加後A:" + listA); // リストを作成 List<Integer> listB = new ArrayList<Integer>(); System.out.println("初期状態:" + listB); //リストの最後に要素を追加 listB.add(1); listB.add(2); listB.add(3); System.out.println("要素追加後B:" + listB); } } |
出力結果
初期状態:[]
要素追加後A:[あいうえお, かきくけこ, さしすせそ]
初期状態:[]
要素追加後B:[1, 2, 3]
リストの要素数がパラメータの配列のサイズ以下の場合、パラメータの配列に要素を格納したものを返しています。
上書きされなかった要素の先頭の要素には、nullが代入されています。
インデックスを指定してリストに要素を追加する場合
例1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// リストに要素を追加する import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // リストを作成 List<String> listA = new ArrayList<String>(); System.out.println("初期状態:" + listA); //リストの最後に要素を追加 listA.add("あいうえお"); listA.add("かきくけこ"); listA.add("さしすせそ"); System.out.println("要素追加後A:" + listA); // インデックスを指定して要素を追加 listA.add(1, "がぎぐげご"); System.out.println("要素追加後A:" + listA); // リストを作成 List<Integer> listB = new ArrayList<Integer>(); System.out.println("初期状態:" + listB); //リストの最後に要素を追加 listB.add(1); listB.add(2); listB.add(4); System.out.println("要素追加後B:" + listB); // インデックスを指定して要素を追加 listB.add(2, 3); System.out.println("要素追加後B:" + listB); } } |
出力結果
初期状態:[]
要素追加後1:[あいうえお, かきくけこ, さしすせそ]
要素追加後1:[あいうえお, がぎぐげご, かきくけこ, さしすせそ]
初期状態:[]
要素追加後2:[1, 2, 4]
要素追加後2:[1, 2, 3, 4]
措定したインデックスに追加したい値が要素として追加されています。
リストの要素数以上のインデックスを指定する場合
addメソッドにリストの要素数以上のインデックスを指定してみます。
例1
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.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // リストを作成 List<String> listA = new ArrayList<String>(); System.out.println("初期状態:" + listA); //リストの最後に要素を追加 listA.add("あいうえお"); listA.add("かきくけこ"); listA.add("さしすせそ"); System.out.println("要素追加後A:" + listA); // インデックスを指定して要素を追加 listA.add(5, "がぎぐげご"); System.out.println("要素追加後A:" + listA); } } |
出力結果
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 5, Size: 3
「サイズに対してインデックスの指定がおかしい」というエラーが発生します。
今回のポイント
addでリストに要素を追加
リストに要素を追加するにはListクラスのaddメソッドを使用する
⚫︎ Listクラスのaddメソッドでリストに要素を追加する
⚫︎ パラメータに追加する要素だけ指定してaddメソッドを呼び出す場合は、リストの最後の要素に追加される
⚫︎ addメソッドの第1パラメータにインデックスを指定し、第2パラメータに追加したい要素を指定する場合は、指定したリストの位置に要素を追加する
⚫︎ リストの要素数以上のインデックスを指定する場合、「IndexOutOfBoundsException」例外が発生します。
関連記事
リスト(List)に複数の要素を追加するaddAll()メソッドについてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。