【Java入門】Listからサブリスト(部分リスト)を取り出す方法を解説
この記事では、Javaのリスト(List)からサブリスト(部分リスト)を取得する方法について詳しく解説します。
リストとサブリストとは?
リストとは、要素を順序付けて格納し、インデックスを使って順番にアクセスできるコレクションです。挿入・更新・削除・検索など、インデックスを基準とした操作メソッドが用意されており、重複した要素を持つこともできます。そして、リストの一部または部分集合のことをサブリスト(sublist)と呼びます。
それでは、実際の動作を見てみましょう。
入力例:
入力リスト: [101, 102, 103, 104, 105, 106, 107, 108, 109] 開始インデックス: 3 終了インデックス: 6
期待される出力:
3番目のインデックスから6番目のインデックスまでの要素: [104, 105, 106]
アルゴリズム
ステップ1 - 開始 ステップ2 - 整数型のリスト input_list を宣言する ステップ3 - 値を定義する ステップ4 - subList(3, 6) メソッドを使用して、インデックス3から6までのサブリストを作成する ステップ5 - 結果を表示する ステップ6 - 終了
例1:main関数内ですべての処理を実行する
ここでは、すべての処理を「main」関数内にまとめて記述します。
import java.util.LinkedList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
int index_start=3;
int index_end=6;
List<Integer> input_list= new LinkedList<>();
for (int i=1; i<=9; i++){
input_list.add(i + 100);
}
System.out.println("定義されたリスト: "+input_list);
input_list.subList(index_start,index_end);
System.out.println(index_start + "番目のインデックスから" + index_end + "番目のインデックスまでの要素: " + input_list.subList(3,6));
}
}出力結果
定義されたリスト: [101, 102, 103, 104, 105, 106, 107, 108, 109] 3番目のインデックスから6番目のインデックスまでの要素: [104, 105, 106]
例2:オブジェクト指向プログラミングとして関数にカプセル化する
こちらの例では、処理を独立した関数にカプセル化し、オブジェクト指向プログラミングのスタイルで実装します。
import java.util.LinkedList;
import java.util.List;
public class Demo {
static void sublist(List<Integer> input_list, int index_start, int index_end){
input_list.subList(index_start,index_end);
System.out.println(index_start + "番目のインデックスから" + index_end + "番目のインデックスまでの要素: " + input_list.subList(3,6));
}
public static void main(String[] args) {
int index_start=3;
int index_end=6;
List<Integer> input_list= new LinkedList<>();
for (int i=1; i<=9; i++){
input_list.add(i + 100);
}
System.out.println("定義されたリスト: "+input_list);
sublist(input_list, index_start, index_end);
}
}出力結果
定義されたリスト: [101, 102, 103, 104, 105, 106, 107, 108, 109] 3番目のインデックスから6番目のインデックスまでの要素: [104, 105, 106]
補足:subListメソッドの注意点
subList(int fromIndex, int toIndex) メソッドは、fromIndex(含まれる)から toIndex(含まれない)までの範囲のビューを返します。つまり、上記の例ではインデックス3〜5の要素(104, 105, 106)が取得されます。また、返されるサブリストは元のリストのビューであるため、サブリストへの変更は元のリストにも反映される点に注意してください。
-
正方形の面積を求めるJavaプログラムの書き方【初心者向け解説】
この記事では、Javaを使って正方形の面積を求める方法をわかりやすく解説します。正方形の面積は、次の公式で計算できます。辺 × 辺つまり s2正方形の面積の計算式正方形の1辺の長さを s とすると、その面積は s2(辺の2乗)で表されます。下図のように、縦と横が同じ長さの図形であるため、辺同士を掛け合わせるだけで面積が求まります。入力例1辺の長さ : 4出力例正方形の面積 : 16アルゴリズム処理の流れは以下の手順になります。Step 1 - 開始Step 2 - 整数型の変数 my_side(辺の長さ)と my_area(面積)を宣言するStep 3 - ユーザーから値を読み込む、または値を
-
【Java入門】長方形の周囲(外周)を求めるプログラムの作り方
長方形の周囲とは? この記事では、Javaを使って長方形の周囲(外周)を求める方法を解説します。長方形の周囲とは、長方形の4つの辺すべての長さを足し合わせた合計のことで、次の図のように「縦の辺2本」と「横の辺2本」の長さを合計したものに相当します。 長方形は向かい合う辺の長さが等しいという性質を持つため、周囲は次の式で計算できます。 周囲 = 2 ×(縦の長さ + 横の長さ) 入力と出力の例 たとえば、入力が次の値であるとします。 長方形の各辺の長さ:5, 8, 5, 8 このとき、期待される出力は次のとおりです。 Perimeter : 26 アルゴリズム 処理の流れは以下のようになりま