Java 如何停止覆盖arraylist?
我使用输入获取值并将其添加到ArrayList。当我第二次输入数据时,它会在输入第二个数据后覆盖第一个数据。无法修复它 学生班 输入参与者类Java 如何停止覆盖arraylist?,java,list,arraylist,static,Java,List,Arraylist,Static,我使用输入获取值并将其添加到ArrayList。当我第二次输入数据时,它会在输入第二个数据后覆盖第一个数据。无法修复它 学生班 输入参与者类 import java.util.*; 公共类输入参与者扩展学生{ 公共体育赛事; public InputParticipant(int rollNumb、String firstName、String lastName、, 整数年龄、字符串性别、字符串运动事件) { 超级(号码、名、姓、年龄、性别); 这个.sportsEvent=sportsEven
import java.util.*;
公共类输入参与者扩展学生{
公共体育赛事;
public InputParticipant(int rollNumb、String firstName、String lastName、,
整数年龄、字符串性别、字符串运动事件)
{
超级(号码、名、姓、年龄、性别);
这个.sportsEvent=sportsEvent;
}
公共可用性()
{
系统输出打印(“资格:”);
//50米赛跑
如果(年龄>=10岁&&age=10岁&&age=15岁&&(sportsEvent.equals(“400米赛跑”)| | sportsEvent.equals(“尤文林”)| | sportsEvent.equals(“铁饼”)//400米赛跑,尤文林和铁饼
{
System.out.println(“是”);
}
其他的
{
系统输出println(“否(年龄:50米比赛女性最低10-12岁,100米比赛最低10-15岁,400米比赛最低15岁,尤文林和铁饼)”;
}
}
公共静态void main(字符串[]args)
{
列表螺柱=新的ArrayList();
输入参与者i;
i=新输入参与者(rollNumber、firstName、lastName、年龄、性别、sportsEvent);
扫描仪输入=新扫描仪(系统输入);
while(true)
{
System.out.println(“输入学生详细信息:”);
系统输出打印(“卷号:”);
rollNumber=in.nextInt();
系统输出打印(“名字:”);
firstName=in.next();
系统输出打印(“姓氏:”);
lastName=in.next();
系统输出打印(“年龄:”);
年龄=in.nextInt();
系统输出打印(“性别:”);
性别=in.next();
系统输出打印(“体育赛事(50米/100米/400米/尤文林/铁饼):”;
sportsEvent=in.next();
添加第(i)款;
列表l=新的ArrayList();
l、 addAll(螺柱);
迭代器disp=l.Iterator();
while(disp.hasNext())
{
InputParticipant st=disp.next();
System.out.println(“卷号:+st.rollNumber+”\n名称:+st.firstName+“+st.lastName+”\n发件人:+st.gender+”\n管理:+st.age+“\n体育赛事:+st.sportsEvent”);
圣·易立性();
System.out.println(“--------------------------------------------------------”;
}
}
}
}
因为您在循环中创建了新对象:
列表l=新的ArrayList()
试着这样做:
public static void main(String[] args) {
List<InputParticipant> stud=new ArrayList<InputParticipant>();
//List<InputParticipant> l=new ArrayList<InputParticipant>();
Scanner in = new Scanner(System.in);
while(true){
System.out.println("Enter the Student details:");
System.out.print("roll number:");
rollNumber=in.nextInt();
System.out.print("First name:");
firstName=in.next();
System.out.print("Last name:");
lastName=in.next();
System.out.print("age:");
age=in.nextInt();
System.out.print("gender:");
gender=in.next();
System.out.print("sports event(50meterrace/100meterrace/400meterrace/Juvelin/discus):");
sportsEvent=in.next();
stud.add(i);
InputParticipant i = new InputParticipant(rollNumber, firstName, lastName, age, gender, sportsEvent);
Iterator<InputParticipant> disp = l.iterator();
while(disp.hasNext()){
InputParticipant st=disp.next();
System.out.println("Roll Number:"+st.rollNumber+"\nName: "+st.firstName+" "+st.lastName+"\nGender: "+st.gender+"\nAge: "+st.age+"\nSports Event:"+st.sportsEvent);
st.elegibility();
System.out.println("-----------------------------------------");
}
}
}
publicstaticvoidmain(字符串[]args){
列表螺柱=新的ArrayList();
//列表l=新的ArrayList();
扫描仪输入=新扫描仪(系统输入);
while(true){
System.out.println(“输入学生详细信息:”);
系统输出打印(“卷号:”);
rollNumber=in.nextInt();
系统输出打印(“名字:”);
firstName=in.next();
系统输出打印(“姓氏:”);
lastName=in.next();
系统输出打印(“年龄:”);
年龄=in.nextInt();
系统输出打印(“性别:”);
性别=in.next();
系统输出打印(“体育赛事(50米/100米/400米/尤文林/铁饼):”;
sportsEvent=in.next();
添加第(i)款;
InputParticipant i=新的InputParticipant(rollNumber、firstName、lastName、年龄、性别、sportsEvent);
迭代器disp=l.Iterator();
while(disp.hasNext()){
InputParticipant st=disp.next();
System.out.println(“卷号:+st.rollNumber+”\n名称:+st.firstName+“+st.lastName+”\n发件人:+st.gender+”\n管理:+st.age+“\n体育赛事:+st.sportsEvent”);
圣·易立性();
System.out.println(“--------------------------------------------------------”;
}
}
}
因为您在循环中创建了新对象:
列表l=新的ArrayList()
试着这样做:
public static void main(String[] args) {
List<InputParticipant> stud=new ArrayList<InputParticipant>();
//List<InputParticipant> l=new ArrayList<InputParticipant>();
Scanner in = new Scanner(System.in);
while(true){
System.out.println("Enter the Student details:");
System.out.print("roll number:");
rollNumber=in.nextInt();
System.out.print("First name:");
firstName=in.next();
System.out.print("Last name:");
lastName=in.next();
System.out.print("age:");
age=in.nextInt();
System.out.print("gender:");
gender=in.next();
System.out.print("sports event(50meterrace/100meterrace/400meterrace/Juvelin/discus):");
sportsEvent=in.next();
stud.add(i);
InputParticipant i = new InputParticipant(rollNumber, firstName, lastName, age, gender, sportsEvent);
Iterator<InputParticipant> disp = l.iterator();
while(disp.hasNext()){
InputParticipant st=disp.next();
System.out.println("Roll Number:"+st.rollNumber+"\nName: "+st.firstName+" "+st.lastName+"\nGender: "+st.gender+"\nAge: "+st.age+"\nSports Event:"+st.sportsEvent);
st.elegibility();
System.out.println("-----------------------------------------");
}
}
}
publicstaticvoidmain(字符串[]args){
列表螺柱=新的ArrayList();
//列表l=新的ArrayList();
扫描仪输入=新扫描仪(系统输入);
while(true){
System.out.println(“输入学生详细信息:”);
系统输出打印(“卷号:”);
rollNumber=in.nextInt();
系统输出打印(“名字:”);
firstName=in.next();
系统输出打印(“姓氏:”);
lastName=in.next();
系统输出打印(“年龄:”);
年龄=in.nextInt();
系统输出打印(“性别:”);
性别=in.next();
系统输出打印(“体育赛事(50米/100米/400米/尤文林/铁饼):”;
sportsEvent=in.next();
添加第(i)款;
InputParticipant i=新的InputParticipant(rollNumber、firstName、lastName、年龄、性别、sportsEvent);
迭代器disp=l.Iterator();
while(disp.hasNext()){
InputParticipant st=disp.next();
System.out.println(“卷号:+st.rollNumber+”\n名称:+st.firstName+“+st.lastName+”\n发件人:+st.gender+”\n管理:+st.age+“\n体育赛事:+st.sportsEvent”);
圣·易立性();
System.out.println(“--------------------------------------------------------”;
}
}
}
可能尝试使用Java POJO
在您的情况下,从扫描仪获取值后,创建一个新对象,然后将该对象添加到ArrayList中
i = new InputParticipant(rollNumber, firstName, lastName, age, gender, sportsEvent);
stud.add(i);
不确定为什么要在while循环中创建另一个ArrayList,因为while应该只用于收集输入。可能尝试使用Java POJO 在您的情况下,从扫描仪获取值后,创建一个新对象,然后将该对象添加到ArrayList中
i = new InputParticipant(rollNumber, firstName, lastName, age, gender, sportsEvent);
stud.add(i);
不知道为什么要在while循环中创建另一个ArrayList,因为while应该只用于收集输入。我真的无法帮助您修复代码,因为它有很多地方很奇怪<
public class Student {
public int rollNumber, age;
public String firstName, lastName, gender;
public Student(int rollNumber, String firstName, String lastName, int age, String gender)
{
this.rollNumber = rollNumber;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.gender = gender;
}
}