我有如下表獲取不同的對象從列表中的Java
question_text_id question_id language_id question_text
2 7 1 english_text_1
3 7 2 spanish_text_1
4 8 2 spanish_text_2
5 8 1 english_text_2
現在我要爲每個不同的question_id
創建列表我用下面的代碼
List<QuestionText> questionTextList = questionManager.getQuestionsTextByQuestionId(Long.parseLong(questions.getQuestionId().toString()));
for (QuestionText questionText : questionTextList) {
questionMap.put("questionId", questionText.getQuestionId());
questionMap.put("language", questionText.getLanguageId());
if(questionText.getLanguageId().longValue() == 1){
questionMap.put("englishQuestionText",questionText.getQuestionText());
} else {
questionMap.put("spanishQuestionText",questionText.getQuestionText());
}
questionListMap.add(questionMap);
}
adminCollectionBookendModel.put("questionListMap",questionListMap);
[{questionId = 1,language=1, englishQuestionText = english_text_1,spanishQuestionText=spanish_text_1},{questionId = 1,language=2, englishQuestionText = english_text_1,spanishQuestionText=spanish_text_1}]
但是,這給予我重複相同的數據對象,如果我有西班牙文和英文問題文本如上所示。如何獲得唯一的列表?
如何同時獲取每個question_id的西班牙文本和英文文本以及language_id並訪問它?
請幫我在這
你'questionListMap'列表類型只包含相同的對象多次。即使您在每次迭代中創建新地圖,也不會得到預期結果。你需要做的是在每次迭代中查看列表,看看當前問題是否已經有地圖,並設置其英文或西班牙文本。 – Titus
要添加到以前的評論中,您將無法爲地圖中的'language'屬性添加不同的值,因爲它將被覆蓋。如果您希望languageIds適用於兩種語言及其文本,則可能必須考慮以不同的方式來存儲此屬性。 – user2004685
@ user2004685其他的工作也很好,請告訴我如何達到我的要求 – allDroid