`
daxiaoli123
  • 浏览: 45479 次
  • 性别: 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));

    }
}

相关推荐

Global site tag (gtag.js) - Google Analytics