【Java】3分で理解!setを使ってリスト(List)の要素を上書きする!
リスト(List)の要素を上書きする場合にはListクラスのsetメソッドを使用します。
Listクラスのsetメソッドは、リスト(List)の要素を上書きします。
そのため、リストとして追加した要素を一度、更新して取得したいと思った場合は必見です。
今回はListクラスのsetメソッドを使って
・ リストの要素を指定して上書きする場合
・ リストの要素数以上のインデックスを指定する場合
・ リストの要素を全て上書きする場合
について解説します。
目次
setメソッドとは
Listクラスのsetメソッドは、Listから配列に変換するメソッドとなります。
setメソッドの書き方
setメソッドの構文は下記となります。
1 |
list.set(インデックス, 上書きする値); |
パラメータ
・ インデックス:
どこのデータを書き換えたいのかを指定する。(0からスタート)
・ 上書きする値:
この値に変えたいという上書きしたい値を指定する。
setの()に第1パラメータとしてインデックスを第2ラメータとして上書きする値を指定することでインデックスの要素を上書きします。
リスト(List)の要素を上書きするサンプルコード
リスト(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 |
// リストの要素を上書きする import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { //リストを作成 List<String> list1 = new ArrayList<String>(); list1.add("あいうえお"); list1.add("かきくけこ"); list1.add("さしすせそ"); list1.add("たちつてと"); System.out.println("上書き前:" + list1); // リストの要素を上書き String setlist = list1.set(1, "なにぬねの"); System.out.println("上書き後:" + list1); System.out.println("削除された要素:" + setlist); } } |
出力結果
上書き前:[あいうえお, かきくけこ, さしすせそ, たちつてと]
上書き後:[あいうえお, なにぬねの, さしすせそ, たちつてと]
削除された要素:かきくけこ
リストの要素数がパラメータの配列のサイズ以下の場合、パラメータの配列に要素を格納したものを返しています。
上書きされなかった要素の先頭の要素には、nullが代入されています。
リストの要素数以上のインデックスを指定する場合
パラメータにサイズ0の配列を使うにはtoArray()メソッドの引数に「new String[0]」を指定します。
例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 |
// リストの要素を上書きする import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { //リストを作成 List<String> list2 = new ArrayList<String>(); list2.add("あいうえお"); list2.add("かきくけこ"); list2.add("さしすせそ"); list2.add("たちつてと"); System.out.println("上書き前:" + list2); // リストの要素を上書き String setlist = list.set(5, "なにぬねの"); System.out.println("上書き後:" + list2); System.out.println("削除された要素:" + setlist); } } |
出力結果
Exception in thread “main” java.lang.IndexOutOfBoundsException
5番目の値を上書きしようとしていますがその場所にデータはない為、エラーが発生しています。
リストの要素を全て上書きする場合
for文を使用することでリストの要素を全て上書きすることができます。
例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 |
// リストの要素を上書きする import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { //リストを作成 List<String> list3 = new ArrayList<String>(); list3.add("あいうえお"); list3.add("かきくけこ"); list3.add("さしすせそ"); System.out.println("上書き前:" + list3); for(int i = 0; i < 3; i++) { String setlist = list3.set(i, "らりるれろ"); System.out.println("削除された要素:" + setlist); } System.out.println("上書き後:" + list3); } } |
出力結果
上書き前:[あいうえお, かきくけこ, さしすせそ]
削除された要素:あいうえお
削除された要素:かきくけこ
削除された要素:さしすせそ
上書き後:[らりるれろ, らりるれろ, らりるれろ]
for文を使用することで「らりるれろ」と上書きする処理を繰り返して行っています。
今回のポイント
setでリストの要素を上書き
リストの要素を上書きするにはListクラスのsetメソッドを使用する
• Listクラスのsetメソッドでリストの要素の上書きを行う
• setメソッドの第1パラメータは何番日(0始まりでカウント)の要素を上書きするかを指定し、第2パラメータは上書き後の要素を指定する
• setメソッドの第1パラメータがリストの要素数以上を指定する場合、「IndexOutOfBounds Exception」例外が発生する
• for文を使用することでリストの要素を全て上書きする
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。