У меня есть List
объектов, этот список может содержать тысячи элементов.
Я хочу получить подмножество 10, 20, 34, 56 (любую часть размера, которую выберет пользователь), это подмножество должно быть выбрано случайным образом, и у меня не может быть дубликатов.
Будет ли Collections.shuffle()
достаточным для больших списков POJO? Или есть более эффективный / безопасный способ сделать это?
Если взять мой пример здесь, если бы myStrings
содержал 50 000 строк, было бы неплохо назвать Collections.shuffle()
, если бы вы хотели только 5 элементов?
public class ShuffleMe
{
public static void main(String[] args)
{
int NUM_OF_ELEMENTS_TO_PICK = 3;
List<String> myStrings = new ArrayList<String>();
myStrings.add("A");
myStrings.add("B");
myStrings.add("C");
myStrings.add("D");
myStrings.add("E");
myStrings.add("F");
Collections.shuffle(myStrings);
for (int i = 0; i < NUM_OF_ELEMENTS_TO_PICK; i++)
{
System.out.println(myStrings.get(i));
}
}
}