2015-01-21 99 views
0

通過列表循環和創建視圖,我目前有兩個列表:依賴於數據

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] 

隨後的前兩個單詞應顯示在屏幕上是正確的,而'真實'這個詞不正確。

然而,什麼是實際發生的情況是:

[This, Is, This, This, Is, Is, Real, Real] - >其中[This, Is]是正確的,其餘都標記爲不正確。

任何想法?

回答

1

你不應該有一個內部循環。你只需要一個循環,所以不要使用增強。

您可以使用類似:

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)) 
    .... 

剛剛檢查在同一位置的實際的話。

+0

好啊,這樣做很有道理!乾杯:) – 2015-01-21 10:23:18