如何确定和使用阵列中给定数量的问题? Android Studio

问题描述 投票:1回答:1

我有一个包含300多个问题的String []数组。当我开始我的“测试活动”时,它会使用数组的“整个”长度创建一个测试(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]);
}
java android shuffle
1个回答
1
投票

你几乎就在那里,但我认为你所有的shuffled数组都保存了一个索引的String值,而不是问题。如果chapterRandomTestQuestions是字符串问题数组,则可以简化它。

从数组中创建Strings的随机列表,并返回可以根据需要迭代的混洗问题:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.