[Dart]リスト(配列)からランダムに要素を取り出すには?

Dart

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

Dartで配列であるリストからランダムに要素を取り出す方法を紹介します。

スポンサーリンク

方法

コンピューター, ノート, オフィス, コード, プログラミング, プログラム

リストからランダムに要素を取り出すに方法は、2つあります。

Random

1つは、Randomを使う方法です。

まず、mathライブラリをインポートします。

import 'dart:math';

次に、Randomのインスタンスを用意します。

そして、「list[Random.nextInt(list.length)]」のように、リストの要素にRandomのnextIntメソッドの値でアクセスします。

nextIntメソッドの引数には、リストのlengthプロパティを指定します。

  var random = new Random();
  
  var randomElem = list[random.nextInt(list.length)];

使用例

import 'dart:math';

void main() {
  var numbers = [1 , 2, 3, 4, 5];
  
  var random = new Random();
  
  var randomElem = numbers[random.nextInt(numbers.length)];
  
  print(randomElem); //4
}

shuffle

もう1つは、shuffleメソッドを使う方法です。

まず、リストからlistからshuffleメソッドを呼び出します。

そして、firstプロパティでリストの先頭の要素を取得します。

var randomItem = list.shuffle().first

shuffleメソッドを使う方法では、呼び出した配列の順番がバラバラになってしまいます。

もし、元の配列に影響を与えたくない場合は、toListとカスケードを使います。

var randomE = (numbers.toList()..shuffle()).first;

使用例

void main() {
  var numbers = [1 , 2, 3, 4, 5];
 
  var randomE = (numbers.toList()..shuffle()).first;
  
  print(randomE); //3
}

まとめ

配列からランダムに要素を取り出す方法は、次の2つです。

  • Randomを使う方法
  • shuffleを使う方法

コメント

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