第39回 Listの範囲操作
今回のテーマは「Listの範囲操作」です。
Listインターフェースには、範囲を指定してListの形で取り出すsubListメソッドがあります。 集合から部分集合を取り出すようなイメージですね。 subListメソッドを他のメソッドと併用することにより、指定された範囲の要素のみに変更を加えることができます。
では、サンプルでsubListメソッドを使ってみましょう。
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> sampleList = new LinkedList<Integer>();
for (int i = 0; i < 20; i++) {
sampleList.add(i + 1);
}
System.out.println(sampleList);
// 指定された範囲を0で置き換える
Collections.fill(sampleList.subList(0, 5), 0);
System.out.println(sampleList);
// 指定された範囲の順序を逆にする
Collections.reverse(sampleList.subList(5, 10));
System.out.println(sampleList);
// 指定された範囲を削除する
sampleList.subList(10, 15).clear();
System.out.println(sampleList);
}
}
指定された範囲のみ要素が変更されていることが確認できますね。 なお、subListメソッドを使用する場合は、元となるListとsubListメソッドで取り出したListの状態が不一致とならないよう注意してください。

