Java Android:确保测验答案彼此不同
我正在开发一款Android问答应用。我已经让它工作了,但对于我用来确保显示的答案彼此不同的算法,我并不感到兴奋
上下文:我将一个hashmap键作为问题的一部分,并显示其值加上其他三个随机值作为四个可能的答案
这是我的代码:
String corrValue, randValue1, randValue2, randValue3;
do {
corrValue = value;
randValue1 = ArrayList.get(random.nextInt(ArrayList.size())).toString();
randValue2 = ArrayList.get(random.nextInt(ArrayList.size())).toString();
randValue3 = ArrayList.get(random.nextInt(ArrayList.size())).toString();
} while (corrValue == randValue1 || corrValue == randValue2 || corrValue == randValue3 || randValue1 == randValue2 || randValue1 == randValue3 || randValue2 == randValue3);
正如我所说,代码是有效的,但在我的初学者眼中,它并不是最优雅的解决方案
# 1 楼答案
我猜你的答案是整数,但出于某种原因,你需要把它们转换成字符串。在这种情况下,编造类似于正确答案的错误答案不是更好吗?例如,如果正确的值是10,那么我会把其他答案设为8、9和11。根据问题的不同,你可能想用0、20、30或1100、1000来回答一个更好的问题。将它们全部随机分配似乎不是一个好主意(假设你在问x,答案是-600,0,2,102323,尴尬的否?)