我已經創建了以下方法以創建唯一的隨機數。 (此唯一值屬於樹的節點):創建唯一的隨機數
static Random rand = new Random();
public static ArrayList<Node> go(int n) {
ArrayList<Node> list = new ArrayList<Node>();
ArrayList<Integer> numList = new ArrayList<Integer>();
// TODO Auto-generated method stub
for(int i = 1; i<=5; i++)
{
int number = rand.nextInt(10)+1;
if(list.size()>0 && !check(list,number))
{
i--;
continue;
}
numList.add(number);
Node node = new Node();
node.data = number;
list.add(node);
}
int w = 0;
for (Node d : list) {
System.out.println(w+": "+d.data);
w++;
}
return list;
}
private static boolean check(ArrayList<Node> list, int num) {
// TODO Auto-generated method stub
boolean b = false;
/*if(list.size()==0)
return true;
*/
for (Node node : list) {
if(node.data == num)
b = false;
else
b = true;
}
return b;
}
但它並不創造獨特的數字和還有我的列表中重複。像:
0: 10
1: 1
2: 10
3: 5
4: 6
是否有任何理由不使用[Java SecureRandom](http://download.oracle.com/javase/6/docs/api/java/security/SecureRandom.html)? – birryree 2010-12-10 15:18:32
SecureRandom提供不可預測的序列。 Random有很多非安全性用途,其中可預測性不是問題,並且有一些需要再現相同序列。 – strainer 2010-12-10 15:57:10