如何从数组中确定和使用给定数量的问题? 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
我有一个包含 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