如何从数组中确定和使用给定数量的问题? Android 工作室

How to determine and use a given number of questions from an array? Android Studio

我有一个包含 300 多个问题的 String[] 数组。当我开始 "Test Activity" 时,它会创建一个测试,其长度为 "whole" 数组 (300)。但是,我只想使用该数组中的 115 个问题(随机)。这可能吗?

这是我的循环代码,我认为它负责使用的问题数量。?

 //This is my FOR Loop

 public void shuffleChapterRandomTest() {
    shuffledPositionChapterRandomTest = new String[chapterRandomTestQuestions.length];
    for (int k = 0; k < shuffledPositionChapterRandomTest.length; k++) {
        shuffledPositionChapterRandomTest[k] = String.valueOf(k);
    }
    Collections.shuffle(Arrays.asList(shuffledPositionChapterRandomTest));
    Log.i("TAG", "shuffle: " + shuffledPositionChapterRandomTest[0] + " " + shuffledPositionChapterRandomTest[1]);
}

您快完成了,但我认为您的随机排列数组所做的只是保存索引的字符串值,而不是问题。如果 chapterRandomTestQuestions 是字符串问题数组,则可以简化。

从数组中创建 Strings 的随机列表和 return 可以根据需要迭代的随机问题:

 public List<String> shuffleChapterRandomTest() {
    final List<String> randomQuestions = Arrays.asList(chapterRandomTestQuestions);
    Collections.shuffle(randomQuestions);
    return randomQuestions.subList(0, 115);
}

这假设列表中的项目超过 115 个,所以有点不安全(你可以 return randomQuestions.subList(0, Math.min(chapterRandomTestQuestions.length, 115)) 来阻止这个问题),否则它会抛出一个 IndexOutOfBoundsException