java - 在嵌套 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"}]
有什么建议吗?
解决方案
推荐阅读
- python-3.x - 在没有 gcd 算法的情况下找到 lcm
- spring - 如何有效地将大量数据从数据库传输到客户端用户 Spring REST
- visual-studio-code - 在当前窗口中使用 `code.` 打开 VSCode,而不是打开一个新窗口?
- reactjs - React 中的 AWS Amplify UI 自定义
- typescript - 点燃元素打字稿反映:真
- javascript - 在 React Native 中使用自定义文本时出现内存泄漏
- couchdb - 使用多索引排序查询 Hyperledger Fabric 中的状态级别数据库
- r - 根据逻辑条件从数据框中提取单个值,Tidyverse 风格
- node.js - 使用 NodeJS 在测试中从磁盘读取 - 同步与异步
- r - glmer使用哪个家庭?