【Java入門】簡単!Listクラスのsetメソッドの使い方

今回はListクラスのメソッドについてお話をさせて頂きます!

ListクラスにはListを操作するためのメソッドがいくつもありますがその中で

「追加済みの値を更新(変更)する方法を知りたい。」
「インデックス(場所)を指定して値を変更したい」
「Listクラスのsetメソッドの使い方を知りたい。」

と思った方はこの記事必見です!

この記事を見ればListクラスのsetメソッドの使い方を学ぶことができ上記の疑問がすぐ解決します!

値を変更する方法

配列の場合、値を変更したいと思ったら次のように書きます。

これで0番目の要素に3という値を設定することができました。

ではListでこれを実現するにはどうしたら良いのでしょうか?
List内のデータを特定の値に書き換えたい場合はsetメソッドを使うことになります。

setメソッドの基本構文

setメソッドは次のような書き方になります。

一つ目の引数はList内のデータのどこのデータを書き換えたいのかを指定します。
この値は0~Listのデータ件数-1までが指定できるようになっています。

二つ目の引数は書き換える値ですが実際にどんな値に変更するのかをここで指定することになります。

この説明だけではわかりづらいかもしれません。
では次の項目で実際にプログラムを交えて解説します!

実際の使い方

まずはプログラムを示します。

実行結果:

このプログラムではListのインスタンス変数listを初期化して用意したあと、addメソッドを使って0~4の値をList内に追加しています。

次にsetメソッドを使用して0番目のデータを3に書き換えるという処理を行っています。
そのため、実行結果を見てわかるように一番最初のデータが3になっていますよね。

ここは元々は0だったのですがsetメソッドを使うことで3に上書きされたのです!

値をすべて書き換える

次に値をすべて変更するという方法をsetメソッドを使って実現してみたいと思います。

実行結果:

for文とsetメソッドの組み合わせで値をすべて書き換えることができます。
しかし、もっと短く書く方法が存在します。
その方法を次のプログラムで見てみましょう。

実行結果:

先程とは違いsetメソッドは使っていません。
今回はCollectionsクラスfillメソッドを使っています。

このfillメソッドは第一引数で指定したListに第二引数で指定した値に全て書き換えるというメソッドになります。

このメソッドは空のListに対しては使えないため注意が必要ですがもし全ての値を一括で同じ値に書き換えたい場合はこのメソッドを使うのが良いでしょう。

存在しない場所を指定するとどうなるの?

次に先程のプログラムを少し変更して存在しない場所のデータを上書きしようとするとどうなるのかを見ていきたいと思います。

実行結果:

という形で例外が発生します。
このIndexOutOfBoundsExceptionは存在しない場所にアクセスした際に発生する例外です。

つまり、「そんな場所にデータはないよ!」と教えてくれており処理の続行が不可能になったのです。

最初のaddでデータは5個しか登録されていないので99番目のデータにアクセスしようと思ってもできないのは当然のことですよね!

貴方はSetクラスについて調べてきましたか?

Javaには紛らわしい事にsetと名のつくものがもう一つあります。

今回はsetメソッドについて解説をしましたがそれとは別にSetクラスというクラスが存在しています。

これらは全く別物ですのでもし間違えてこの記事にアクセスしてしまった場合は次の記事でSetクラスについて解説をしていますので是非ご覧ください!

【Java入門】ListとSetクラスの変換・違いまとめ
更新日 : 2019年1月23日

まとめ

いかがでしょうか?

今回はsetメソッドについて解説をしました。
setメソッドは後から値を変更することができるという便利なメソッドです。

難しい内容ではないとは思いますがもし忘れてしまったらこの記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説