`
daxiaoli123
  • 浏览: 46676 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

使用随机数打乱list顺序

 
阅读更多
List<Integer> myList = new ArrayList<Integer>();
List list=new ArrayList();
for (int i = 0; i <= size; i++) {
list.add("test"+i);
}
long start=System.currentTimeMillis();
for (int i = 0; i < list.size(); i++){
myList.add(i);
}

int[] arr = new int[size];
int n = size;
for (int i = 0; i < arr.length; i++) {
arr[i] = myList.remove((int) (Math.random() * n));
n--;
}
   
List list2=new ArrayList();
for (int i = 0; i < arr.length; i++) {
//System.out.println(list.get(arr[i]) + "   ");
System.out.print(arr[i] + "   ");

list2.add(list.get(arr[i]));
}
System.out.print( " -------  ");
long end=System.currentTimeMillis();
long now=end-start;
//System.out.println("--------scoend-------------"+list2);
分享到:
评论
1 楼 fhqiwcw 2012-08-20  
public class MyMain {
    public final static int SIZE = 10000;

    public static void main(String args[]) {
        List<Integer> myList = new ArrayList<Integer>();
        for (int i = 0; i < SIZE; i++) {
            myList.add(i);
        }

        long start = System.currentTimeMillis();

        // 随机选择list中的两个元素进行交换
        for (int j = 0; j < SIZE; j++) {
            int from = (int) Math.floor(Math.random() * SIZE);
            int to = (int) Math.floor(Math.random() * SIZE);

            Integer temp = myList.get(to);
            myList.set(to, myList.get(from));
            myList.set(from, temp);

        }

        long end = System.currentTimeMillis();

        for (Integer integer : myList) {
            System.out.println(integer);
        }

        System.out.println("time:" + (end - start));

    }
}

相关推荐

    Java 实例 - 集合打乱顺序源代码-详细教程.zip

    除了`ArrayList`,对于其他类型的集合如`LinkedList`或`HashSet`,在打乱顺序前需要先转换为`List`,因为`Collections.shuffle()`只适用于`List`接口的实现。例如: ```java Set&lt;Integer&gt; set = new HashSet(); set....

    unity 随机数不重复出现

    - **预生成所有可能的数字**:如果随机数范围较小(如本例中的0-9),可以预先生成所有可能的数字并将它们打乱顺序,然后依次取出。 - **使用List**:虽然`ArrayList`也能工作,但使用`List&lt;int&gt;`可以避免类型转换...

    java生成十个不重复的随机数

    这时,可以考虑使用`TreeSet`,它允许我们指定一个比较器来控制插入顺序,或者使用`ArrayList`配合`indexOf`方法来检查新生成的随机数是否已存在。 另一种方法是使用`Collections.shuffle()`,先创建一个包含0到...

    产生1到N的不重复随机数

    Python的`random.shuffle`函数就实现了这一点,它会原地打乱列表中的元素顺序。所以,生成不重复随机数序列的代码可能如下: ```python import random def generate_unique_randoms(N): numbers = list(range(1, ...

    suijishu.zip_随机数生成

    对于更复杂的随机数需求,如随机选择、随机排列等,`random`模块也提供了相应的函数,如`random.choice(list)`可以从列表中随机选取一个元素,`random.shuffle(list)`则可以打乱列表中的元素顺序。 在压缩包中的`...

    python之随机数函数的实现示例.docx

    `shuffle([x, random])`函数用于将一个列表中的元素顺序随机打乱。这对于需要重新排列列表元素顺序的应用场景非常有用,如随机播放列表或洗牌等。 **示例代码**: ```python my_list = ['apple', 'banana', 'cherry...

    python随机数的产生及函数定义关键参数详解.docx

    这个函数对于需要随机打乱列表顺序的场景非常有用。 ##### 7. `random.sample(sequence, k)` `random.sample(sequence, k)`函数用于从`sequence`中随机抽取`k`个不同的元素,并返回这些元素组成的列表。注意,如果...

    PHP产生不重复随机数的5个方法总结

    这种方法首先创建一个从1到50的整数数组,然后使用`shuffle`函数将其顺序打乱,最后通过`array_slice`截取前 `$num` 个元素,以得到不重复的随机数。 **方法二:结合`srand`和`each`** ```php $numbers = range(1, ...

    python随机数的产生及函数定义关键参数详解(可编辑).docx

    通过使用关键参数,可以在调用函数时不必严格按照参数的顺序传递值,而只需要指定参数名称即可。例如: ```python my_func(arg2="world", arg1="hello") ``` 这将会正确地将"hello"赋值给`arg1`,"world"赋值给`...

    python在一个范围内取随机数的简单实例

    - `random.shuffle(x)`:就地打乱列表x的顺序。 示例: ```python import random # 随机整数 print(random.randint(0, 99)) # 随机选取0到100间的偶数 print(random.randrange(0, 101, 2)) # 随机...

    python3实现随机数

    对于需要打乱一个列表中元素顺序的情况,shuffle函数提供了这样的功能,它会就地修改传入的列表参数。而sample函数则可以从一个序列中随机获取指定数量的不重复元素,且返回的元素列表是独立的,不会修改原有序列。 ...

    python-leetcode面试题解之第384题打乱数组.zip

    `random`模块提供了各种随机数生成函数,其中`random.shuffle()`函数专门用于就地打乱列表元素的顺序。 以下是对第384题的一个可能的解决方案: ```python import random def shuffle(nums): """ 打乱输入的...

    Python产生一个数值范围内的不重复的随机数的实现方法

    此外,如果需要从一个已排序的序列中选择不重复的随机元素,并且希望保持元素原有的顺序,可以考虑使用`random.shuffle()`函数先打乱原序列,然后再取前`k`个元素。 总的来说,`random.sample()`是Python中生成不...

    Python 实现随机数详解及实例代码

    本文将深入探讨Python中如何使用内置库`random`来生成各种类型的随机数,包括随机整数、随机浮点数以及如何从序列中随机选择元素。通过具体的示例代码和详细解释,希望能帮助读者更好地理解和应用这些功能。 #### 1...

    随机点名C#示例程序, 保证每轮点名所有学生都被点到一次

    在C#中,我们可以使用`System.Random`类来生成随机数,而为了存储学生名单,我们通常会用到列表(`List&lt;string&gt;`)或者其他集合类型。 1. **随机数生成**:`System.Random` 类提供了多种方法来生成随机数。例如,`...

    在python中以相同顺序shuffle两个list的方法

    ### 在Python中以相同顺序shuffle两个list的方法 在进行数据预处理时,特别是在机器学习领域,经常需要将数据集中的样本及其对应的标签打乱顺序,以便更好地进行模型训练。例如,在使用批量梯度下降法训练神经网络...

    Collections 随机排序方法Shuffle源码说明

    这个方法在处理各种数据集时,比如游戏中打乱卡片顺序、抽奖程序或者任何需要随机化顺序的场景,都发挥着关键作用。在本文中,我们将深入探讨`Collections.shuffle()`的源码,理解其工作原理。 `Collections....

    PHP生成不重复随机数的方法汇总

    这种方法利用`range()`函数创建一个包含指定范围的整数数组,然后使用`shuffle()`函数随机打乱数组元素的顺序,最后通过`array_slice()`取出指定数量的随机数。示例代码如下: ```php $numbers = range(1, 50); ...

    集合工具类Collections的基本应用

    - `shuffle(List&lt;?&gt; list, Random r)`: 随机打乱列表中的元素顺序,可指定随机数生成器。 在Android开发中,Collections工具类的应用非常广泛。例如,对ListView的数据源ArrayList进行排序,或者在多线程环境下...

    VB做的拼图游戏 完整源码

    在实现拼图游戏逻辑时,开发者可能会用到数组或者List来存储原始图片切割后的各个小块,并通过随机化算法打乱顺序。这种随机化过程通常涉及到对数组或列表元素的随机排列,使用了VB.NET中的Random类和相关的随机数...

Global site tag (gtag.js) - Google Analytics