我正在使用以下代码,最后我在calssEntries列表中看到了重复的最后一个值 我的意思是,如果我调试它,我可以看到正确的数据,但在第二次迭代中,第一个数据条目的值 是覆盖,我看到第二次,依此类推 我想念的是什么?
String memberName = null;
String memberValue = null;
List<String> memberList = new ArrayList<String>();
List<String> memberValueList = new ArrayList<String>();+ArrayList<ClassEntry> calssEntries = new ArrayList<ClassEntry>();
...
while (dataRow != null) {
memberList.clear();
memberValueList.clear();
for (int i = 1; i < dataArray.length; i += 2) {
memberName = dataArray[i];
memberList.add(memberName);
memberValue = dataArray[i + 1];
memberValueList.add(memberValue);
}
ClassEntry classEntry = new ClassEntry();
classEntry.setClassName(className);
classEntry.setMemberName(memberList);
classEntry.setMemberValue(memberValueList);
calssEntries.add(classEntry);
....
答案 0 :(得分:0)
试试这个
for (int i = 1; i < dataArray.length; i += 2) {
int j = i;
memberName = dataArray[i];
memberList.add(memberName);
memberValue = dataArray[j + 1];
memberValueList.add(memberValue);
}
答案 1 :(得分:0)
我认为问题是您需要在while循环中创建memberList和memberValueList的新实例。类似的东西:
calssEntries = new ArrayList<ClassEntry>();
...
while (dataRow != null) {
List<String> memberList = new ArrayList<String>();
List<String> memberValueList = new ArrayList<String>();
...
...
在您的代码中,calssEntries的条目指的是memberList和memberValue的相同(单个)实例。