0
我正在寫一個函數,其中圖像顯示在一個混洗列表中。隨機列表/運行數組項/兩分法
private int measurementCount = 0;
public int createShuffledList(){
List<Integer> indexes = new ArrayList< >();
for (int i = 1; i <= MEASUEREMENTREPEATS; i++) {
indexes.add(i);
}
Collections.shuffle(indexes);
Log.d("QD", "Shuffled index: " + indexes);
int randomPrimeNumber = (int) indexes.get(measurementCount);
Log.d("QD", "Value from index: " + randomPrimeNumber);
primeindex = randomPrimeNumber;
Log.d("QD", "Vale of primeindex index: " + primeindex);
return primeindex;
}
會發生什麼情況?
- 拋去列表「索引」創建
- randomPrimenumber是該項目的第0位置
- primeindex返回數字數
的其它方法添加到+1「measurementCount」 。現在應該返回第二項混洗列表「索引」(primeindex)。
再次調用該方法重新洗牌「索引」數組(不打算)。
所以我想分成兩部分的方法。 「洗牌索引」的部分應該被調用一次(onCreate),「獲取下一個項目」的部分應該被多次調用(在一個循環中取決於measurementcount)。所以,我在一個錯誤的代碼編寫會發生什麼:
調用一次(在OnCreate):
public int createShuffledList(){
List<Integer> indexes = new ArrayList< >();
for (int i = 1; i <= MEASUEREMENTREPEATS; i++) {
indexes.add(i);
}
Collections.shuffle(indexes);
Log.d("QD", "Shuffled index: " + indexes);
handoverIndex = indexes;
return handoverIndex;
}
呼叫多次,measurementCount +1:
public int getNextShuffledListItem(){
int randomPrimeNumber = (int) handoverIndex.get(measurementCount);
Log.d("QD", "Value from index: " + randomPrimeNumber);
primeindex = randomPrimeNumber;
Log.d("QD", "Vale of primeindex index: " + primeindex);
return primeindex;
}
是否有可能移交洗牌數組到下一個運行數組項目的方法?
最佳和在此先感謝 tigercode
M ij上嗨,但我的getNextShufffledListItem()現在未找到 「索引」 - 我是否必須將它們聲明爲整數(或類似的?)? – tigercode
這有點無意義。你可以調用'indexes.get(measurementCount)',但你的索引必須是一個類變量,我更新了答案檢查出來。 – miljon
我不能夠感謝你!絕對好! – tigercode