Похож, я не могу либо использовать ArrayList, ни Set:Collection, без дублей и в случайном порядке в Java
Set<>
- я могу избежать дубликатов, используя набор, но не варианта воспроизведения в случайном порядке//Collections.shuffle(List<?> list)
ArrayList<>
- Я могу использовать shuffle, чтобы рандомизировать список, но дубликаты разрешены.
Я мог бы использовать Set
и преобразовать это в ArrayList
(или наоборот), чтобы избежать дубликатов. В качестве альтернативы, проведите петлю через набор, чтобы рандомизировать элементы. Но я ищу что-то более эффективное.
Вы можете проверить, находится ли элемент уже в ArrayList, прежде чем добавлять его: myList.contains (myItem); Эта проверка должна быть только O (n). – HectorLector
* что-то более эффективное *> Вы говорите это, потому что вы (а) попробовали его и (б) завершили с помощью соответствующего бенчмаркинга, что это существенное узкое место в вашей заявке? Если нет, преждевременно не оптимизируйте и не напишите, какая версия читается наиболее четко (возможно, конвертировать в arraylist). –