[Java]リスト(List)の末尾からN個の要素を取得するには?

Java

どうも、ちょげ(@chogetarou)です。

リスト(ArrayList)の最後からN個の要素を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リスト(ArrayList)の末尾からN個の要素を取得するには、subList()を使います。

まず、リストからsubList()を呼び出します。

そして、subList()の第1引数にリストのサイズを取得する要素数で引いた値、第2引数にリストのサイズを指定します。

リストのサイズは、size()で取得します。

//N=取得する要素数
List<T> lastN = list.subList(list.size() - n, list.size());

上記のsubList()は、呼び出したリストの最後からN個の要素をリストとして取得します。

取得したい要素数がリストの長さを超える可能性がある場合は、Math.max()を使います。

//「list.size() - n」がマイナスになる可能性がある場合
List<T> lastN = list.subList(Math.max(list.size() - n, 0), list.size());

使用例

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        List<Integer> numbers = new ArrayList<Integer>(5);
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);
        numbers.add(6);
        
        int n = 3;
        List<Integer> lastN = numbers.subList(numbers.size() - n, numbers.size());
        
        System.out.println(lastN);
        
    }
}
出力:
[4, 5, 6]

コメント

タイトルとURLをコピーしました