第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在沒有重復(fù)的范圍內(nèi)生成隨機數(shù)

在沒有重復(fù)的范圍內(nèi)生成隨機數(shù)

哈士奇WWW 2021-12-22 20:39:22
我正在嘗試從 firebase隨機化測驗問題。我正在嘗試生成 0-50 之間的隨機數(shù),將它們添加到一個數(shù)組中,一旦使用了該數(shù)字,我就希望刪除該數(shù)字。但它會隨著重復(fù)而永遠存在,這是我用來生成隨機的一段代碼我在 oncreate 和測驗的 4 個選擇按鈕上調(diào)用 updatequestion()。public void updateQuestion (){    for (int i = 0; i < 50; i++) {        questionNos.add(i);    }    Random r = new Random();    index = r.nextInt(questionNos.size()-1);    mQuestionNo = questionNos.remove(index);    mQuestionRef = new Firebase("https://class9notes-2808b.firebaseio.com/"+mQuestionNo+"/question");    mQuestionRef.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(DataSnapshot dataSnapshot) {            String question = dataSnapshot.getValue(String.class);            questiontextview.setText(question);        }        @Override        public void onCancelled(FirebaseError firebaseError) {        }    });    mChoice1Ref = new Firebase("https://class9notes-2808b.firebaseio.com/"+mQuestionNo+"/choice1");    mChoice1Ref.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(DataSnapshot dataSnapshot) {            String choice1 = dataSnapshot.getValue(String.class);            bchoice1.setText(choice1);        }        @Override        public void onCancelled(FirebaseError firebaseError) {        }    });    mChoice2Ref = new Firebase("https://class9notes-2808b.firebaseio.com/"+mQuestionNo+"/choice2");    mChoice2Ref.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(DataSnapshot dataSnapshot) {            String choice2 = dataSnapshot.getValue(String.class);            bchoice2.setText(choice2);        }        @Override        public void onCancelled(FirebaseError firebaseError) {        }    });  
查看完整描述

3 回答

?
吃雞游戲

TA貢獻1829條經(jīng)驗 獲得超7個贊

通過改組列表,您可以將 0 到 49 之間的所有數(shù)字隨機放置在列表中:


questionNos.clear();  // if not empty 

for (int i = 0; i < 50; i++) {

    questionNos.add(i);

}

Collections.shuffle(questionNos);


查看完整回答
反對 回復(fù) 2021-12-22
?
藍山帝景

TA貢獻1843條經(jīng)驗 獲得超7個贊

使用這段代碼


ArrayList<Integer> numbers = new ArrayList<Integer>();   

Random randomGenerator = new Random();

while (numbers.size() < 50) {


    int random = randomGenerator.nextInt(50); // will generate a random number from 0 to 50

    if (!numbers.contains(random)) {  //will check whether the number is repeated or not

        numbers.add(random); //if number is not repeated then it will add it in array

    }

}


查看完整回答
反對 回復(fù) 2021-12-22
?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

您的updateQuestion().


 for (int i = 0; i < 50; i++) {

        questionNos.add(i);

 }

因此,如果questionNos之前電話中已有 49 個問題,updateQuestion()您將收到 99 個問題,其中 98 個問題是重復(fù)的,依此類推。


把它移到只被調(diào)用一次的地方,比如構(gòu)造函數(shù)。


查看完整回答
反對 回復(fù) 2021-12-22
  • 3 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號