随机混乱类成员的方法

时间:2012-09-10 20:52:45

标签: java android algorithm

说我有这样的课程:

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

我是否可以添加某种排序方法来对成员进行洗牌,以便随机排序?

3 个答案:

答案 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));