Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表循环内的重复条目<;字符串>;_Java_List_Arraylist - Fatal编程技术网

Java 列表循环内的重复条目<;字符串>;

Java 列表循环内的重复条目<;字符串>;,java,list,arraylist,Java,List,Arraylist,我正在使用下面的代码,最后我在CalsEntries中看到列出了最后复制的值 我的意思是,如果我调试它,我可以看到正确的数据,但在第二次迭代中,第一个数据项的值 是覆盖,我看到第二个两次,依此类推 我错过了什么 String memberName = null; String memberValue = null; List<String> memberList = new ArrayList<String>(); List<String> memberVal

我正在使用下面的代码,最后我在CalsEntries中看到列出了最后复制的值 我的意思是,如果我调试它,我可以看到正确的数据,但在第二次迭代中,第一个数据项的值 是覆盖,我看到第二个两次,依此类推 我错过了什么

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);


....
String memberName=null;
字符串memberValue=null;
List memberList=新建ArrayList();
List memberValueList=新建ArrayList()+ArrayList CalsEntries=新的ArrayList();
...
while(dataRow!=null){
memberList.clear();
memberValueList.clear();
对于(inti=1;i
试试这个

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);

}
for(int i=1;i
我认为问题在于您需要在while循环中创建memberList和memberValueList的新实例。类似于:

calssEntries = new ArrayList<ClassEntry>();

...
while (dataRow != null) {
List<String> memberList = new ArrayList<String>();
List<String> memberValueList = new ArrayList<String>();
...
...
calssEntries=newarraylist();
...
while(dataRow!=null){
List memberList=新建ArrayList();
List memberValueList=新建ArrayList();
...
...

在代码中,CalsEntries的条目引用相同的(单个)memberList和memberValue的实例。

你想做什么?ClassEntry是你定义的一个对象吗?你真的应该正确地格式化你的代码…查看那里的
编辑
链接,如果你在发布问题后看到你的代码格式不正确,就使用它。你故意拼错CalsEntries会让我的文案编辑大脑发疯。
 int j=i;
是多余的。