Android 洗牌列表/遍历数组项/将方法一分为二

Android 洗牌列表/遍历数组项/将方法一分为二,android,arrays,shuffle,Android,Arrays,Shuffle,我正在编写一个函数,其中图像通过无序列表显示 private int measurementCount = 0; public int createShuffledList(){ List<Integer> indexes = new ArrayList< >(); for (int i = 1; i <= MEASUEREMENTREPEATS; i++) { indexes.add(i); } Collectio

我正在编写一个函数,其中图像通过无序列表显示

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;
}
是否可以将洗牌后的数组切换到下一个遍历数组项的方法

祝你一切顺利,谢谢你
tigercode

是的,您可以这样做,您的方法(函数)需要返回整数列表

public List<Integer> 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);
    return indexes;
}
请注意
IndexOutOfBoundsException
,您不能调用超出列表大小的索引

================更新 如何使用你的方法

public class ExampleShuffledList {
    private static final int MEASUEREMENTREPEATS = 10;
    List<Integer> yourList;
    int measurementCount;

    public List<Integer> createShuffledList(){
        List<Integer> indexes = new ArrayList<>();
        for (int i = 1; i <= MEASUEREMENTREPEATS; i++) {
            indexes.add(i);
        }
        Collections.shuffle(indexes);
        return indexes;
    }

    public void someMethodWhereYouWantToUseList(){
        yourList = createShuffledList();
        measurementCount = 0; //you declere it somehow
        Integer yourShuffledIndex = yourList.get(measurementCount); //just call get to get the index from list
    }
}
公共类示例ShuffledList{
专用静态最终内部测量中心=10;
列出你的清单;
国际计量账户;
公共列表createShuffledList(){
列表索引=新的ArrayList();

对于(int i=1;i Hi Mij,但是我的getNextShufffledListItem()现在找不到“索引”-我是否必须将它们声明为整数(或类似的?)呢?这有点毫无意义。你可以调用
索引。get(measurementCount)
但是你的索引必须是类变量,我更新了答案,请检查一下。
public List<Integer> 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);
    return indexes;
}
indexes.get(yourIndex);
public class ExampleShuffledList {
    private static final int MEASUEREMENTREPEATS = 10;
    List<Integer> yourList;
    int measurementCount;

    public List<Integer> createShuffledList(){
        List<Integer> indexes = new ArrayList<>();
        for (int i = 1; i <= MEASUEREMENTREPEATS; i++) {
            indexes.add(i);
        }
        Collections.shuffle(indexes);
        return indexes;
    }

    public void someMethodWhereYouWantToUseList(){
        yourList = createShuffledList();
        measurementCount = 0; //you declere it somehow
        Integer yourShuffledIndex = yourList.get(measurementCount); //just call get to get the index from list
    }
}