java中的permute/scramble arraylist元素

kam*_*lot 7 java random arraylist permutation data-structures

假设我有整数的arraylist ...有没有办法可以在arraylist中生成元素的随机排列/排列

如果清单是{1,2,3,4,5,6}

调用一些方法randomPermute()会把它改成随机的东西

{1,3,2,6,5,4}

hoo*_*och 14

Collections.shuffle() 做的工作:

public static void shuffle(List<?> list) - 使用默认的随机源随机置换指定列表.所有排列都以大致相等的可能性发生. http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#shuffle(java.util.List)

例如

    ArrayList<Integer>anArrayList = new ArrayList<Integer>();
    anArrayList.add(1);
    anArrayList.add(2);
    anArrayList.add(3);
    anArrayList.add(4);
    anArrayList.add(5);
    System.out.println(anArrayList);
    Collections.shuffle(anArrayList);
    System.out.println(anArrayList);
Run Code Online (Sandbox Code Playgroud)

样本输出

[1, 2, 3, 4, 5]
[3, 5, 1, 2, 4]
Run Code Online (Sandbox Code Playgroud)