【问题标题】:Quickest way to randomize an array of ints in Java在 Java 中随机化整数数组的最快方法
【发布时间】:2012-11-17 12:56:33
【问题描述】:

是否可以在没有 ArrayLists/Collections 等帮助的情况下从一个数组中选择一个随机元素并将其移动到另一个数组(除非您可以在数组上使用 shuffle)?并确保不再选择该元素? 我考虑过将其设置为 null 似乎您无法删除它,但我不确定。

基本上我希望myArray 被洗牌或随机化,我认为最好的方法是以随机顺序将它们从一个中拉出并将它们添加到一个新的...

【问题讨论】:

标签: java arrays random


【解决方案1】:

您可以使用Collections.shuffle() 方法来打乱列表。

【讨论】:

    【解决方案2】:

    - 你可以使用CollectionList 一样,然后使用shuffle() 方法。

    - 或者如果你想坚持使用数组,那么首先你需要将数组转换为 List,然后使用 shuffle() 方法。

    例如:

    Integer[] arr = new Integer[10];
    
    List<Integer> i = new ArrayList<Integer>(Arrays.asList());
    
    Collections.shuffle(i);
    

    【讨论】:

      【解决方案3】:

      您也可以使用Collections.shuffle(List) 来打乱数组:

      Integer[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
      Collections.shuffle(Arrays.asList(data));
      
      System.out.println(Arrays.toString(data));
      

      将打印例如[6、2、4、5、10、3、1、8、9、7]。

      Arrays.asList 不会创建新列表,而是为数组创建一个 List 接口包装器,因此对列表的更改也会传播到数组。

      【讨论】:

        猜你喜欢
        • 2017-01-21
        • 2013-11-18
        • 2010-11-12
        • 2012-02-05
        • 2018-09-07
        • 2021-05-18
        • 2011-02-12
        相关资源
        最近更新 更多