说我有这样的课程:
public class EnglishWords {
private final String word1;
private final String word2;
private final String word3;
private final String word4;
public EnglishWords(String word1Arg, String word2Arg, String word3Arg, String word4Arg) {
this.word1 = word1Arg;
this.word2 = word2Arg;
this.word3 = word3Arg;
this.word4 = word4Arg;
}
public String getword1() {
return word1;
}
public String getword2() {
return word2;
}
public String getword3(){
return word3;
}
public String getword4(){
return word4;
}
}
我创建了一个这样的对象:
EnglishWords englishWords = new EnglishWords(words.get(0),
words.get(1), words.get(2), wordPair.getEnglishWord());
我是否可以添加某种排序方法来对成员进行洗牌,以便随机排序?
答案 0 :(得分:6)
是。您可以将其保留在List
中,然后使用Collections.shuffle()
对列表进行随机播放。
如果你渴望自己洗牌,或者有兴趣怎么做 - fisher-yates algorithm给出一个给定列表的统一分布式排列。
答案 1 :(得分:1)
尝试使用Math.Random并将其限制为您想要拥有的单词数,以便每次生成数字时伪随机地选择一个单词...或者如果您想以随机混洗方式设置单词,请使用在将它们添加到英语词汇之前,同样的事情!
编辑:amit说的更好,完全忘记了! :$
答案 2 :(得分:1)
像这样:
List<String> argumentList = new ArrayList<String>();
agumentList.add(words.get(0));
agumentList.add(words.get(1));
agumentList.add(words.get(2));
agumentList.add(wordPair.getEnglishWord());
Collections.shuffle(argumentList);
EnglishWords englishWords = new EnglishWords(argumentList.get(0), argumentList.get(1), argumentList.get(2), argumentList.get(3));