循环遍历 List 并根据数据创建视图

Looping through List and creating views dependent on the data

我目前有两个列表:

List<String> listUserAnswers = splitWords(answer);
List<String> listRealAnswers = splitWords(realAnswer);

我的主要目标是遍历这些并根据数据创建不同的视图。例如,对于每个 correctAnswer,我将创建一种视图,对于 incorrectAnswer,我将创建另一种视图。

然后我循环遍历两个列表:

for (String userAnswer : listUserAnswers) {
        for (String realAnswer : listRealAnswers) {
            if (userAnswer.equals(realAnswer)) {
                correctLayout = createCorrectView(userAnswer);
                newCorrectViews.add(correctLayout);
            } else {
                incorrectLayout = createIncorrectView(userAnswer);
                newIncorrectViews.add(incorrectLayout);
            }
        }
    }

然后我检查 userAnswer 是否与 realAnswer 匹配,然后创建视图。

但是,我遇到的问题是,如果 realAnswer 是:

[This, Is, The, Real, Answer]

并且用户输入:

[This, Is, Real]

然后前两个词应该在屏幕上显示为正确,'Real' 不正确。

然而,实际情况是:

[This, Is, This, This, Is, Is, Real, Real] -> 其中 [This, Is] 正确,其余标记为不正确。

有什么想法吗?

你不应该有一个内循环。你只需要一个循环,所以不要使用增强循环。

您可以使用类似的东西:

minSize = listUserAnswers.size() > listRealAnswers.size() ? listUserAnswers.size() : listRealAnswers.size();
for(int i = 0; i < minSize; i++)
  String userAnswer = listUserAnswers.get(i);
  String realAnswer = listRealAnswers.get(i);
  if(userAnswer.equals(realAnswer))
     ....

它只检查相同位置的实际单词。