gh.*_*gh. 3 java arrays collections shuffle arraylist
该文件说:"大约相等的可能性发生的所有排列组合." 但我不知道这是否包括返回相同排序的(但很小)的可能性.我有一个方法(见下文),其中在两次测试运行期间,列表以原始顺序返回,也许..其他因素可能是错误的,例如可以选择anagram并且结果是单词.词典大约300,000字,所以我已经将方法改为更合适的测试,以防止这种情况发生.方法:
private static char[] nextScrambledWord(int wordLength) {
String word;
do {
word = "ABCDEF"; //TODO Get a word from lexicon
} while(word.length() != wordLength);
ArrayList<Character> temp = new ArrayList<Character>(wordLength);
for(int i = 0; i < wordLength; i++) {
temp.add(word.charAt(i));
}
Collections.shuffle(temp);
char[] result = new char[wordLength];
for(int i = 0; i < wordLength; i++) {
result[i] = temp.get(i);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我也很好奇这个方法本身.如果有人建议如何改进,请随时分享.基本上该方法将从一个集合中拉出wordLength的一个单词,并返回一个洗牌结果的char数组.我没有考虑轮询已知长度的单词,而是考虑根据单词长度将词典分成多个集合.