лучший способ выбрать случайный набор из коллекции?

У меня есть набор объектов в векторе, из которого я хотел бы выбрать случайное подмножество (например, 100 возвращаемых предметов; 5 случайным образом выбрать). В моем первом (очень поспешном) проходе я сделал чрезвычайно простое и, возможно, слишком умное решение:

Vector itemsVector = getItems();

Collections.shuffle(itemsVector);
itemsVector.setSize(5);

Хотя это имеет то преимущество, что это хорошо и просто, я подозреваю, что оно не будет хорошо масштабироваться, то есть Collections.shuffle () должен быть как минимум O (n). Моя менее умная альтернатива

Vector itemsVector = getItems();

Random rand = new Random(System.currentTimeMillis()); // would make this static to the class    

List subsetList = new ArrayList(5);
for (int i = 0; i < 5; i++) {
     // be sure to use Vector.remove() or you may get the same item twice
     subsetList.add(itemsVector.remove(rand.nextInt(itemsVector.size())));
}

Какие-нибудь предложения по лучшим способам вычерчивания случайного подмножества из Коллекции?

Ответы на вопрос(10)

Ваш ответ на вопрос