首页 > 解决方案 > 在嵌套 for 循环中迭代 ArrayList 导致意外结果

问题描述

我想在 Android 中实现带有 Title 和 Some SubQuestions 的 Expandable Recycleview 我正在使用这个示例。

我在为可扩展适配器构建数据时遇到了这样的问题。

这是我的 API 回复

            [{
                "Label": "Title One",
                "Question": "SubQuestion One "
            },
            {
                "Label": "Title One"
                "Question": "SubQuestion Two"
            },
            {
                "Label": "Title Two",
                "Question": "SubQuestion Three"
            },
            {
                "Label": "Title Two",
                "Question": "SubQuestion Four"
            },
            {
                "Label": "Title Two",
                "Question": "SubQuestion Five"
            }]

我想用标签分隔每个问题都有标题一并且与标题二相同所以我做了下面的事情

第 1 步:创建标签的 ArrayList 并从 ArrayList 中删除重复项

for (int j = 0; j < temp.size(); j++) {
ProgramDefinitionV1Days data = temp.get(j);
mAllTitlesList.add(data.getLabel());
}
mCompareTitlesList.clear();
mCompareTitlesList = removeDuplicates(mAllTitlesList);

第 2 步:将 mCompareTitlesList 与原始响应进行比较并按标签获取问题

for (String label : mCompareTitlesList) {
mQuetionsList.clear();
for (int i = 0; i < temp.size(); i++) {
    if (label.equalsIgnoreCase(temp.get(i).getLabel())) {

        mQuetionsList.add(new Questions(temp.get(i).getQuestion()));
    }

}
Log.e("mQuetionsList", "" + new Gson().toJson(mQuetionsList));
Titles mTitles = new Titles(label, mQuetionsList);
mTitlesList.add(mTitles);
}

但不幸的是,我没有得到预期的结果。

[{"mQuestions":[{"mQuestions":"Question Three"},{"mQuestions":"Question Four"},{"mQuestions":"Question Five"}],"mTitle":"Title One"},{"mQuestions":[{"mQuestions":"Question Three"},{"mQuestions":"Question Four"},{"mQuestions":"Question Five"}],"mTitle":"Title Two"}]

在每个标签上都有所有最后一个标签的问题

我的期望

[{"mQuestions":[{"mQuestions":"Question One"},{"mQuestions":"Question Two"}],"mTitle":"Title One"},{"mQuestions":[{"mQuestions":"Question Three"},{"mQuestions":"Question Four"},{"mQuestions":"Question Five"}],"mTitle":"Title Two"}]

有什么建议吗?

标签: javaandroidarraylistexpandablelistview

解决方案


推荐阅读