Java 在向量中插入一个元素会更改所有其他元素
我试着在已经有2的向量中插入一个新元素。当我编写insertElementAt(pers,1)时,向量中的所有其他元素都成为我刚才插入的元素。我甚至尝试使用Java 在向量中插入一个元素会更改所有其他元素,java,vector,Java,Vector,我试着在已经有2的向量中插入一个新元素。当我编写insertElementAt(pers,1)时,向量中的所有其他元素都成为我刚才插入的元素。我甚至尝试使用addElement,它还改变了向量中已经存在的其他元素 Vector <Personne> Vect = new <Personne> Vector(); { Personne pers = new Personne(); { for(int i=0; i<2; i++) { Vect.a
addElement
,它还改变了向量中已经存在的其他元素
Vector <Personne> Vect = new <Personne> Vector(); {
Personne pers = new Personne(); {
for(int i=0; i<2; i++) {
Vect.addElement(pers);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
}
System.out.println("Il y a " +Vect.size()+ " personnes dans le vecteur"+"\r\n");
int j = 1;
for(int i =0; i<2; i++) {
System.out.println("Personne "+j);
System.out.println("Nom: "+Vect.elementAt(i).getNom());
System.out.println("Sexe: "+Vect.elementAt(i).getSexe());
System.out.println("Poids: "+Vect.elementAt(i).getPoids());
System.out.println("Taille: "+Vect.elementAt(i).getTaille());
System.out.println();
j++;
}
Vect.insertElementAt(pers, 1);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
System.out.println("Ajout d'une personne a l'indice 2...");
Vector Vect=new Vector();{
人员pers=新人员(){
对于(int i=0;i而言,问题在于您正在重用相同的Personne对象。您需要为每个新Personne实例化一个新的Personne对象
这里有一个固定版本:
class Personne
{
String nom;
char sexe;
double poids;
double taille;
public Personne()
{
// do nothing
}
public String getNom()
{
return nom;
}
public char getSexe()
{
return sexe;
}
public double getPoids()
{
return poids;
}
public double getTaille()
{
return taille;
}
public void setNom(String nom)
{
this.nom = nom;
}
public void setSexe(char sexe)
{
this.sexe = sexe;
}
public void setPoids(double poids)
{
this.poids = poids;
}
public void setTaille(double taille)
{
this.taille = taille;
}
}
public class MyVector
{
public static void main(String[] args)
{
Vector<Personne> Vect = new <Personne>Vector();
Scanner sc = new Scanner(System.in);
Personne pers = null;
for (int i = 0; i < 2; i++)
{
pers = new Personne();
Vect.addElement(pers);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
}
System.out.println("Il y a " + Vect.size() + " personnes dans le vecteur" + "\r\n");
int j = 1;
for (int i = 0; i < 2; i++)
{
System.out.println("Personne " + j);
System.out.println("Nom: " + Vect.elementAt(i).getNom());
System.out.println("Sexe: " + Vect.elementAt(i).getSexe());
System.out.println("Poids: " + Vect.elementAt(i).getPoids());
System.out.println("Taille: " + Vect.elementAt(i).getTaille());
System.out.println();
j++;
}
Vect.insertElementAt(pers, 1);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
System.out.println("Ajout d'une personne a l'indice 2...");
}
}
class人员
{
字符串名称;
炭色;
双点;
双尾;
公职人员()
{
//无所事事
}
公共字符串getNom()
{
返回名称;
}
公共字符getSexe()
{
回归性;
}
公共双getpoid()
{
返回POID;
}
公共双gettaile()
{
回程尾流;
}
公共无效集合名(字符串名)
{
this.nom=nom;
}
公共void setSexe(字符sexe)
{
this.sexe=sexe;
}
公共无效设置点(双点)
{
this.poids=poids;
}
公共空间设置尾板(双尾板)
{
this.taille=taille;
}
}
公共类MyVector
{
公共静态void main(字符串[]args)
{
向量Vect=新向量();
扫描仪sc=新的扫描仪(System.in);
Personne pers=null;
对于(int i=0;i<2;i++)
{
pers=新员工();
矢量加法(pers);
系统输出打印号(“个人姓名”);
pers.setNom(sc.next());
系统输出打印号(“员工中心(M/F):”;
pers.setSexe(sc.next().charAt(0));
系统输出打印(Entrez le poid de la personne:);
pers.setPoids(sc.nextDouble());
系统输出打印(Entrez la taille de la personne:);
pers.setTaille(sc.nextDouble());
}
System.out.println(“Il y a”+向量大小()+“personnes dans le vecteur”+”\r\n”);
int j=1;
对于(int i=0;i<2;i++)
{
系统输出打印项次(“人员”+j);
System.out.println(“Nom:+Vect.elementAt(i.getNom());
System.out.println(“Sexe:+Vect.elementAt(i.getSexe());
System.out.println(“POID:+Vect.elementAt(i).getPOID());
System.out.println(“Taille:+Vect.elementAt(i.getTaille());
System.out.println();
j++;
}
向量插入器(pers,1);
系统输出打印号(“个人姓名”);
pers.setNom(sc.next());
系统输出打印号(“员工中心(M/F):”;
pers.setSexe(sc.next().charAt(0));
系统输出打印(Entrez le poid de la personne:);
pers.setPoids(sc.nextDouble());
系统输出打印(Entrez la taille de la personne:);
pers.setTaille(sc.nextDouble());
System.out.println(“人员指示2…”);
}
}
问题是您正在重用相同的Personne对象。您需要为每个新Personne实例化一个新的Personne对象
这里有一个固定版本:
class Personne
{
String nom;
char sexe;
double poids;
double taille;
public Personne()
{
// do nothing
}
public String getNom()
{
return nom;
}
public char getSexe()
{
return sexe;
}
public double getPoids()
{
return poids;
}
public double getTaille()
{
return taille;
}
public void setNom(String nom)
{
this.nom = nom;
}
public void setSexe(char sexe)
{
this.sexe = sexe;
}
public void setPoids(double poids)
{
this.poids = poids;
}
public void setTaille(double taille)
{
this.taille = taille;
}
}
public class MyVector
{
public static void main(String[] args)
{
Vector<Personne> Vect = new <Personne>Vector();
Scanner sc = new Scanner(System.in);
Personne pers = null;
for (int i = 0; i < 2; i++)
{
pers = new Personne();
Vect.addElement(pers);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
}
System.out.println("Il y a " + Vect.size() + " personnes dans le vecteur" + "\r\n");
int j = 1;
for (int i = 0; i < 2; i++)
{
System.out.println("Personne " + j);
System.out.println("Nom: " + Vect.elementAt(i).getNom());
System.out.println("Sexe: " + Vect.elementAt(i).getSexe());
System.out.println("Poids: " + Vect.elementAt(i).getPoids());
System.out.println("Taille: " + Vect.elementAt(i).getTaille());
System.out.println();
j++;
}
Vect.insertElementAt(pers, 1);
System.out.println("Entrez le nom de la personne: ");
pers.setNom(sc.next());
System.out.println("Entrez le sexe de la personne (M/F): ");
pers.setSexe(sc.next().charAt(0));
System.out.println("Entrez le poid de la personne: ");
pers.setPoids(sc.nextDouble());
System.out.println("Entrez la taille de la personne: ");
pers.setTaille(sc.nextDouble());
System.out.println("Ajout d'une personne a l'indice 2...");
}
}
class人员
{
字符串名称;
炭色;
双点;
双尾;
公职人员()
{
//无所事事
}
公共字符串getNom()
{
返回名称;
}
公共字符getSexe()
{
回归性;
}
公共双getpoid()
{
返回POID;
}
公共双gettaile()
{
回程尾流;
}
公共无效集合名(字符串名)
{
this.nom=nom;
}
公共void setSexe(字符sexe)
{
this.sexe=sexe;
}
公共无效设置点(双点)
{
this.poids=poids;
}
公共空间设置尾板(双尾板)
{
this.taille=taille;
}
}
公共类MyVector
{
公共静态void main(字符串[]args)
{
向量Vect=新向量();
扫描仪sc=新的扫描仪(System.in);
Personne pers=null;
对于(int i=0;i<2;i++)
{
pers=新员工();
矢量加法(pers);
系统输出打印号(“个人姓名”);
pers.setNom(sc.next());
系统输出打印号(“员工中心(M/F):”;
pers.setSexe(sc.next().charAt(0));
系统输出打印(Entrez le poid de la personne:);
pers.setPoids(sc.nextDouble());
系统输出打印(Entrez la taille de la personne:);
pers.setTaille(sc.nextDouble());
}
System.out.println(“Il y a”+向量大小()+“personnes dans le vecteur”+”\r\n”);
int j=1;
对于(int i=0;i<2;i++)
{
系统输出打印项次(“人员”+j);
System.out.println(“Nom:+Vect.elementAt(i.getNom());
System.out.println(“Sexe:+Vect.elementAt(i.getSexe());
System.out.println(“POID:+Vect.elementAt(i).getPOID());
System.out.println(“Taille:+Vect.elementAt(i.getTaille());
System.out.println();
j++;
}
向量插入器(pers,1);
系统输出打印号(“个人姓名”);
pers.setNom(sc.next());
系统输出打印号(“员工中心(M/F):”;
pers.setSexe(sc.next().charAt(0));
系统输出打印(Entrez le poid de la personne:);
pers.setPoids(sc.nextDouble());
系统输出打印(Entrez la taille de la personne:);
pers.setTaille(sc.nextDouble());
System.out.println(“人员指示2…”);
}
}
@Mr.Radish请不要忘记投票,如果您对答案感到满意,请接受答案。:)哦,我没有这么做