我有如下表获取不同的对象从列表中的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