所以,我正在做一个学校项目,该项目旨在制作一个带有随机问题和答案的测验应用程序,我想知道我是否可以列出2个数组列表(一个带有问题,一个带有假答案或干扰因素)并以随机排序的问题与它们各自的干扰因素一起出现的方式将它们随机化,例如,假设我有2个问题和2套干扰因素准备就绪:
问题
干扰物
a)黄色
b)紫色
c)黑色
a)魔术
b)爬行动物政客
c)我们的罪过与失败的重担
如果我将它们都洗牌,那么问题将显示错误的干扰因素,那么我有办法将问题与正确的干扰因素相匹配吗?另外,有没有办法我可以使用无线电组来分散注意力?
答案 0 :(得分:0)
您应该使用Map或HashMap而不是ArrayList。示例:-
Map<String,String> mapOfQueAndDis=new HashMap<String,String>();
mapOfQueAndDis.put("question1","distractor1");
mapOfQueAndDis.put("question2","distractor2");
以此类推...
将您的问题作为关键,将干扰因素作为价值
答案 1 :(得分:0)
您可以创建问题图和干扰因素列表。然后使用随机数打印每个问题以及相应的干扰项。
Map<Question, List<Distractor>> questionDistractorMap = getMap();
List<Question> ques = new ArrayList<>(questionDistractorMap.keySet());
Random random = new Random();
while(ques.size() > -1){
int index = random.nextInt(ques.size());
System.out.println("Question: " + ques.get(index));
System.out.println("Distractors:" + questionDistractorMap.get(ques.get(index)));
ques.remove(index);
}
答案 2 :(得分:0)
您应该考虑使用Map<String, String>
,而不是使用Map<String, Set<String>>
,因为单个问题有多个干扰因素。