【问题标题】:How to extract N random different elements from a set of unique elements?如何从一组独特的元素中提取 N 个随机不同的元素?
【发布时间】:2010-03-24 09:29:03
【问题描述】:

我有一组独特的元素(没有两个相同的元素)。我想从集合中提取 N 个随机和不同的元素。在 Java 中最简单的方法是什么?

【问题讨论】:

    标签: java select random hashset


    【解决方案1】:
    Set<MyObject> mySet = getTheSetFromSomeWhere();
    List<MyObject> myObjects = new ArrayList<MyObject>(mySet);
    Collections.shuffle(myObjects);
    myObjects = myObjects.subList(0, n);
    

    【讨论】:

    • 酷!我喜欢这个解决方案。我以为这会很长。但这是简短而明确的。谢谢!
    • 令我困惑的是为什么没有java.util.Arrays.shuffle() 方法。
    • @Stephen:您可以通过 Collections.shuffle(Arrays.asList(myArray)) 轻松解决缺少的方法。
    • 我实际上是在想别的办法。如果有一个 Arrays.shuffle,你可以用更少的副本来完成这个任务。
    猜你喜欢
    • 2012-02-16
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2023-04-06
    • 1970-01-01
    • 2011-03-19
    相关资源
    最近更新 更多