0

假设我有这样的课程:

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());

是否有某种排序方法可以添加到对成员进行随机排序的类中,以便它们随机排序?

4

3 回答 3

6

是的。您可以将它们放在 a 中List并用于Collections.shuffle()随机播放列表。

如果您渴望自己洗牌,或者对如何完成它感兴趣 - Fisher-yates 算法给出了给定列表的均匀分布排列。

于 2012-09-10T20:54:28.570 回答
1

尝试使用 Math.Random 并将其限制为您想要的单词数,以便它在每次生成数字时伪随机选择一个单词......或者如果您想以随机打乱的方式设置单词,请使用相同的东西在将它们添加到englishwords之前!

编辑:阿米特说的更好,完全忘记了!:$

于 2012-09-10T20:54:59.997 回答
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));
于 2012-09-10T20:58:08.997 回答