【Java入門】ListをsubListで切り出して新しいListを作る方法

中沢 丈
書いた人 中沢 丈

こんにちは!エンジニアの中沢です。

JavaでListから必要な範囲だけを取得して新しいListを作りたいと思ったことはありませんか?

Listから範囲を指定して新しいListを作るには、subListメソッドを使います。

今回は、subListメソッドでListから必要な範囲を切り出す方法解説します!

この記事では、

・Listから必要な範囲だけを取得して新しいListを作りたい
・subListメソッドの使い方を知りたい

という基本的な内容から、

・リストの範囲を指定して、一括削除をしたい
・subListの値を変えると元のListの値も変わるの?

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、subListメソッドの使い方をわかりやすく解説します!

subListとは

サイズの大きなListの一部分だけが必要なときに、その必要な一部分だけを切り出して新しいListを作りたいときにはどうしたらいいでしょうか?

Listから一部を切り出して、新しいListを作りたいときにはsubListメソッドを使います。

subListメソッドの引数でListの範囲を指定して切り出すことができます!

subListの使い方

Listから範囲を切り出してsubListを作る方法

まずは元のListから必要な範囲だけを取得して新しいsubListを作る方法です!

これでsubListを作ることができました。
さっそく実行結果を見てみましょう!

[実行結果]

元のListの中身は[0, 1, 2, 3, 4]です。
これは大丈夫ですね!

次にsubListの中身ですが、インデックスの終わりを含まないことに気をつけましょう。

ここでは(1, 3)指定したので[1, 2]が出力されます。

subListの値を変えると元のListの値も変わる

subList元のList値を共有しています。

そのため、subListの値を変更すると元のListの値も変わります。

さきほどのコードに続いて、次のようにsubListの値を変更したときにどうなるのか見てみましょう。

[実行結果]

subListで変更した値が元のListにも反映されていることが確認できます。

元のListの値を変えるとsubListの値も変わる

次は元のListの値を変えた場合です。

この場合もsubListの値が変わります。

さきほどのコードに続いて、次のように元のListの値を変更します。

[実行結果]

元のListsubListの値が共有されていることが確認できました!

subListはシャローコピーなので注意が必要

subList元のList同じデータを参照しています。

これをシャローコピーといいます。

また、次のようにインデックスの範囲が0の場合は空のListができるので注意してください。

Listの範囲を指定して一括削除をする方法

ここではsubListを使って、インデックスの範囲を指定して一括削除する方法を解説します。

まずはListを作成します。

次にsubListclearメソッドで削除します。

[実行結果]

これで次の実行結果のようにsubListで指定した範囲の要素が削除されました。

このようにsubListで指定した範囲をclearメソッドで削除することで、範囲を指定した一括削除ができるようになります。

subListを利用することで発生する例外

リストの要素数を超えるインデックスを指定した場合にはIndexOutOfBoundsExceptionの例外が発生します。

事前にsizeメソッドなどで要素数を確認して例外が発生しないようにしましょう。

文字列を切り出す場合はsubstringを使う

Listの切り出しにはsubListメソッドを使いましたが、文字列の切り出しにはsubstringメソッドを使います。

こちらの記事では、substringメソッドで文字列を切り出す方法を解説しています。

Listの使い方総まとめ

この記事では紹介しきれなかったListの様々な使い方をこちらの記事で解説しているので、ぜひ確認してみてください!

まとめ

いかがでしたか?

今回はsubListを使って、Listの範囲を指定して操作する方法について解説しました。
Listの範囲を指定して一括削除をする方法は便利なのでぜひ覚えてください!

もしsubListを使ったListの操作を忘れてしまったらこの記事を確認してくださいね!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

3000名以上来場の人気セミナーが開催決定

18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

  • 日付:3/30(日)
  • 時間:14:00〜17:00終了予定
  • 場所:当社 道玄坂オフィス
  • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
  • 参加費:無料
  • URL:https://seminar.sejuku.net/
詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]