1
基本上我的問題是,我試圖編寫一個方法,在字符串圖中查找隨機路徑,因爲它的參數是起始字符串,一個整數長度和一個將存儲路徑的字符串矢量。我試圖這樣做,首先將起始字符串添加到我們的空白矢量,通過它的鄰居遞歸,直到矢量的長度(不包括起始節點)與參數中指定的整數長度相同。我提供了到目前爲止我的代碼在這裏:Java中的「for each」循環每次都以不同的順序運行
public Vector<String> findRandomPathFrom(String n, int len, Vector<String> randomPath){
randomPath.add(n);
if (randomPath.size() == len + 1)
return randomPath;
for (String m : this.neighbours(n)){
if (!randomPath.contains(m) && findRandomPathFrom(m, len, randomPath) != null)
return randomPath;
}
path.setSize(path.size() - 1);
return null;
}
這似乎是做工精細,用給定的字符串開始後指定的字符串數完全返回的路徑。但是,對於任何給定的起始字符串,它每次都會生成相同的EXACT路徑,這種方式會破壞它作爲隨機路徑生成器的目的。我猜這個問題與我的「for each」循環有關,循環遍歷當前字符串的所有相鄰字符串。它似乎只是每隔一段時間在鄰居矢量中的第一個字符串。任何人都可以幫助我解決這個問題,以便它會選擇一個隨機的鄰居而不是按順序?在Java中爲每個循環獲取「按照隨機順序處理集合」的任何方式,如對開始到finsih一樣?
感謝鄰居的名單上提前
非常感謝,我不明白我是怎麼錯過的,現在它每次都會產生一個隨機路徑 – 2010-04-22 11:32:07