株式会社イーヴ

EeBlog(テクニカルブログ)

TOP > EeBlog > 第39回 Listの範囲操作

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