Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 为什么我的对象ArrayList循环结果不正确?_Java - Fatal编程技术网

Java 为什么我的对象ArrayList循环结果不正确?

Java 为什么我的对象ArrayList循环结果不正确?,java,Java,我创建了CompanyRecord的对象Arraylist并在其中插入值。但当我循环时,数据是错误的 public class CompanyRecord { private String Code; private String Name; public void setValue(String value1,String column1) { if (column1.equals("Code")) { this.Code=value1; } e

我创建了CompanyRecord的对象Arraylist并在其中插入值。但当我循环时,数据是错误的

public class CompanyRecord {
private String Code;
private String Name;
public void setValue(String value1,String column1)
{
    if (column1.equals("Code"))
    {
        this.Code=value1;
    }
    else 
    {
        this.Name=value1;
    }
}

public String getValue(String column1)
{

    if (column1.equals("Code"))
    {
        return Code;
    }
    else 
    {
        return Name;
    }
}

}
循环和插入代码为:

ArrayList<CompanyRecord> codelist=new ArrayList<CompanyRecord>();
CompanyRecord codeItem=new CompanyRecord();
codeItem.setValue("first", "Code");
codeItem.setValue("1", "Name");
odelist.add(codeItem);

codeItem.setValue("second", "Code");
codeItem.setValue("2", "Name");
codelist.add(codeItem);

codeItem.setValue("third", "Code");
codeItem.setValue("3", "Name");
codelist.add(codeItem);

for (int j=0;j<codelist.size();j++)
    {
        System.out.println(codelist.get(j).getValue("Code")+'\t'+codelist.get(j).getValue("Name"));
    }
ArrayList codelist=new ArrayList();
CompanyRecord codeItem=新的CompanyRecord();
codeItem.setValue(“第一个”、“代码”);
codeItem.setValue(“1”、“名称”);
添加(代码项);
codeItem.setValue(“第二个”、“代码”);
codeItem.setValue(“2”,“名称”);
添加(代码项);
codeItem.setValue(“第三”、“代码”);
codeItem.setValue(“3”,“名称”);
添加(代码项);

对于(intj=0;j,您需要为每个对象实例化一个新对象

CompanyRecord codeItem=new CompanyRecord(); 
codeItem.setValue("first", "Code"); codeItem.setValue("1", "Name");   
codelist.add(codeItem);

codeItem=new CompanyRecord(); 
codeItem.setValue("second", "Code"); codeItem.setValue("2", "Name");   
codelist.add(codeItem);

您需要为每个对象实例化一个新对象

CompanyRecord codeItem=new CompanyRecord(); 
codeItem.setValue("first", "Code"); codeItem.setValue("1", "Name");   
codelist.add(codeItem);

codeItem=new CompanyRecord(); 
codeItem.setValue("second", "Code"); codeItem.setValue("2", "Name");   
codelist.add(codeItem);

您需要创建
新的
对象

List<CompanyRecord> codelist = new ArrayList<CompanyRecord>();
    CompanyRecord codeItem = new CompanyRecord();
    codeItem.setValue("first", "Code");
    codeItem.setValue("1", "Name");
    codelist.add(codeItem);

    codeItem = new CompanyRecord();
    codeItem.setValue("second", "Code");
    codeItem.setValue("2", "Name");
    codelist.add(codeItem);

    codeItem = new CompanyRecord();
    codeItem.setValue("third", "Code");
    codeItem.setValue("3", "Name");
    codelist.add(codeItem);

    codelist.forEach(e -> {
        System.out.println(e.getValue("Name"));
    });
List codelist=new ArrayList();
CompanyRecord codeItem=新的CompanyRecord();
codeItem.setValue(“第一个”、“代码”);
codeItem.setValue(“1”、“名称”);
添加(代码项);
codeItem=新公司记录();
codeItem.setValue(“第二个”、“代码”);
codeItem.setValue(“2”,“名称”);
添加(代码项);
codeItem=新公司记录();
codeItem.setValue(“第三”、“代码”);
codeItem.setValue(“3”,“名称”);
添加(代码项);
代码列表。forEach(e->{
System.out.println(e.getValue(“Name”);
});

您需要创建新的
对象

List<CompanyRecord> codelist = new ArrayList<CompanyRecord>();
    CompanyRecord codeItem = new CompanyRecord();
    codeItem.setValue("first", "Code");
    codeItem.setValue("1", "Name");
    codelist.add(codeItem);

    codeItem = new CompanyRecord();
    codeItem.setValue("second", "Code");
    codeItem.setValue("2", "Name");
    codelist.add(codeItem);

    codeItem = new CompanyRecord();
    codeItem.setValue("third", "Code");
    codeItem.setValue("3", "Name");
    codelist.add(codeItem);

    codelist.forEach(e -> {
        System.out.println(e.getValue("Name"));
    });
List codelist=new ArrayList();
CompanyRecord codeItem=新的CompanyRecord();
codeItem.setValue(“第一个”、“代码”);
codeItem.setValue(“1”、“名称”);
添加(代码项);
codeItem=新公司记录();
codeItem.setValue(“第二个”、“代码”);
codeItem.setValue(“2”,“名称”);
添加(代码项);
codeItem=新公司记录();
codeItem.setValue(“第三”、“代码”);
codeItem.setValue(“3”,“名称”);
添加(代码项);
代码列表。forEach(e->{
System.out.println(e.getValue(“Name”);
});

我们需要创建新实例以从列表中获取不同的对象

CompanyRecord codeItem=new CompanyRecord();
codeItem.setValue("first", "Code");
codeItem.setValue("1", "Name");
codelist.add(codeItem);

codeItem.setValue("second", "Code");
codeItem.setValue("2", "Name");
codelist.add(codeItem);

codeItem.setValue("third", "Code");
codeItem.setValue("3", "Name");
codelist.add(codeItem);
在这里,我们使用相同的引用并设置其值三次,因此最终值是最新的赋值

指定新对象

CompanyRecord codeItem=new CompanyRecord();
codeItem.setValue("first", "Code");
codeItem.setValue("1", "Name");
codelist.add(codeItem);

codeItem=new CompanyRecord();
codeItem.setValue("second", "Code");
codeItem.setValue("2", "Name");
codelist.add(codeItem);

codeItem=new CompanyRecord();
codeItem.setValue("third", "Code");
codeItem.setValue("3", "Name");
codelist.add(codeItem);

我们需要创建新实例以从列表中获取不同的对象

CompanyRecord codeItem=new CompanyRecord();
codeItem.setValue("first", "Code");
codeItem.setValue("1", "Name");
codelist.add(codeItem);

codeItem.setValue("second", "Code");
codeItem.setValue("2", "Name");
codelist.add(codeItem);

codeItem.setValue("third", "Code");
codeItem.setValue("3", "Name");
codelist.add(codeItem);
在这里,我们使用相同的引用并设置其值三次,因此最终值是最新的赋值

指定新对象

CompanyRecord codeItem=new CompanyRecord();
codeItem.setValue("first", "Code");
codeItem.setValue("1", "Name");
codelist.add(codeItem);

codeItem=new CompanyRecord();
codeItem.setValue("second", "Code");
codeItem.setValue("2", "Name");
codelist.add(codeItem);

codeItem=new CompanyRecord();
codeItem.setValue("third", "Code");
codeItem.setValue("3", "Name");
codelist.add(codeItem);

不要更改原始代码项的值,每次要将其添加到列表中时,都要创建一个新的代码项。在列表中,您只存储对对象的引用,并且由于您覆盖了该对象中的值,因此您通常会获得上一组值您只创建了记录的一个实例,每次只需设置/更改其字段-您必须s为每个记录创建一个实例(在设置字段之前)-添加列表实例不会创建副本(或创建新副本)(用技术术语来说,它是添加引用、指针)不要更改原始代码项的值,每次要将其添加到列表中时,都要创建一个新的代码项。在列表中,您只存储对对象的引用,并且由于您覆盖了该对象中的值,因此您通常会获得上一组值您只创建了记录的一个实例,每次只需设置/更改其字段-您必须s为每个记录创建一个实例(在设置字段之前)-添加列表实例不会创建副本(或创建新副本)(用技术术语来说,它是添加引用、指针)