第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の状態が不一致とならないよう注意してください。