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