[Java]リスト(List)の要素をランダムに取得するには?

Java

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

リスト(List)の要素をランダムに抽出する方法を紹介します。

スポンサーリンク

方法

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

リスト(List)の要素をランダムに取得するには、Randomを使います。

まず、Randomをインポートします。

import java.util.Random;

次に、Randomのインスタンスを生成します。

RandomのインスタンスからnextInt()を呼び出し、nextInt()の引数にリストの要素数を指定します。

そして、リストのnextInt()の戻り値のインデックスにアクセスします。

//list=対象のリスト, T=要素の型
Random rnd = new Random();

int index = rnd.nextInt(list.size()); //ランダムなインデックスを生成

T result = list.get(index); //リストの要素をランダムに取得

上記のnextInt()のインデックスにアクセスすることで、リスト(List)の要素をランダムに取得できます。

使用例

import java.util.ArrayList;
import java.util.Random;

public class Main {

    public static void main(String[] args) throws Exception {
        ArrayList<String> nums = new ArrayList<String>(5);
        nums.add("one");
        nums.add("two");
        nums.add("three");
        nums.add("four");
        nums.add("five");
        
        for (var i = 0; i < 5; i++) {
            System.out.println(getRandom(nums));
        }
    }
    
    public static String getRandom(ArrayList<String> list) {
        Random rnd = new Random();
        int index = rnd.nextInt(list.size());
        return list.get(index);
    }
}
出力:
five
four
two
two
one

コメント

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