Java 从向量中获取元素时出现意外输出
我对Java中的向量用法是新手,这里的问题是向量没有显示预期的输出(正确的输出:Pollo-Ercole此代码输出Ercole-Ercole) 迪潘登特类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
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
。