Java 从向量中获取元素时出现意外输出

Java 从向量中获取元素时出现意外输出,java,vector,get,set,Java,Vector,Get,Set,我对Java中的向量用法是新手,这里的问题是向量没有显示预期的输出(正确的输出:Pollo-Ercole此代码输出Ercole-Ercole) 迪潘登特类 public class Dipendente { private String Id; void setId(String exId) { Id=exId; } String getId() { return Id; } } Azienda类 public cla

我对Java中的向量用法是新手,这里的问题是向量没有显示预期的输出(正确的输出:Pollo-Ercole此代码输出Ercole-Ercole)

迪潘登特类

public class Dipendente 
{
    private String Id;

    void setId(String exId)
    {
    Id=exId;
    }
    String getId()
    {
    return Id;
    }
}
Azienda类

public class Azienda 
{      
    private Vector<Dipendente> Dip = new Vector<Dipendente>();
    public static void main(String[] args) throws IOException
    {
        Azienda az = new Azienda();
        az.dip.setId("Pollo");
        az.Dip.add(az.dip);
        az.dip.setId("Ercole");
        az.Dip.add(az.dip);

            //io.pf is System.out.println(strOut);

        az.io.pf(az.Dip.get(0).getId());
        az.io.pf(az.Dip.get(1).getId());
    }

}
公共类Azienda
{      
私有向量Dip=新向量();
公共静态void main(字符串[]args)引发IOException
{
Azienda az=新的Azienda();
az.dip.setId(“Pollo”);
az.浸渍添加(az.浸渍);
az.dip.setId(“Ercole”);
az.浸渍添加(az.浸渍);
//io.pf是系统输出打印LN(strOut);
az.io.pf(az.Dip.get(0.getId());
az.io.pf(az.Dip.get(1.getId());
}
}
正确的输出:Pollo-Ercole


此代码输出:Ercole-Ercole

您必须创建对象的新实例。你的代码是局部的,因为我们不知道什么是az.dip。但假设这是迪潘登特的一个例子。你需要像下面这样做,它才能工作

.
    Azienda az = new Azienda();
    Dipendente dip = new Dipendente();
    dip.setId("Pollo");
    az.Dip.add(dip);
    Dipendente dip = new Dipendente();
    dip.setId("Ercole");
    az.Dip.add(az.dip);

        //io.pf is System.out.println(strOut);

    az.io.pf(az.Dip.get(0).getId());
    az.io.pf(az.Dip.get(1).getId());

在您的回答中,当您第二次调用setId时,它正在更改您先前使用的对象的值,因此您会看到一个重复条目。

请注意,您通常使用
ArrayList
而不是
Vector