关于,随机排列

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:47:03
大家有没有比较好的算法,最好是api已经提供的。随机排列1到n的整数,我用的办法是先把1到n存到arraylist里面。在随机拿出来一个,在remove那个位置。直到全部拿完。代码如下,我感觉效率不是很高。大家有没有更好的算法。谢谢!

/*
*得到随机排列的整形数组,范围是1至num;
*
* @param int num 需要排列的范围,为1到num,包括1和num
* @return 已随机排序的整形数组
*/

public Integer[] randomSort(int num) {

Integer[] a = new Integer[num];

List list = new ArrayList();

int randomNum = 0;

for (int i = 0; i < num; i++) {

list.add(new Integer(i + 1));
}
for (int i = 0; i < a.length; i++) {

randomNum = (int) (Math.rint(Math.random() * ((list.size() - 1))));

a[i] = (Integer) list.get(randomNum);

list.remove(randomNum);
}

return a;

}
还有有没有高人知道如何用清空控制台,网上找的那个什么参数是“cls”的方法不好使,抛异常。

public Integer[] randomSort(int num) {

Integer[] a = new Integer[num];

List list = new ArrayList();

int randomNum = 0;

for (int i = 0; i < num; i++) {

list.add(new Integer(i + 1));
}
Collections.shuffle(list);
list.toArray(a);
return a;
}

清空控制台我不太清楚,我用的eclipse,控制台信息直接可以clear。。。

可以用Collections类中的静态方法shuffle

关注

用 Collections.shuffle()方法
具体使用ls都转载了哈

关于清理控制台
这里有一个复杂的办法,不过很有效,用到了JNI
http://blog.csdn.net/ptrlink/archive/2008/09/04/2879568.aspx

另外附带一个办法用来调用控制台命令,lz有什么问题请加qq25846111
import java.util.*;
import java.io.*;

class StreamGobbler extends Thread
{
InputStream is;
String type;