我已經使用輸入來獲取值並將其添加到ArrayList。當我第二次輸入數據時,它會在輸入第二個數據後覆蓋第一個數據。無法修復它。如何停止覆蓋數組列表?
Student類
public class Student {
static int rollNumber, age;
static 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;
}
}
InputParticipant類
import java.util.*;
public class InputParticipant extends Student{
public static String sportsEvent;
public InputParticipant(int rollNumb, String firstName, String lastName,
int age, String gender, String sportsEvent)
{
super(rollNumber, firstName, lastName, age, gender);
this.sportsEvent=sportsEvent;
}
public void elegibility()
{
System.out.print("Eligibility:");
//50 meter race
if(age>=10 && age<=12 && gender.equals("female") && sportsEvent.equals("50meterrace"))
{
System.out.println(" Yes ");
}
else if((age>=10 && age<=15) && sportsEvent.equals("100meterrace"))//100 meter race
{
System.out.println(" yes ");
}
else if(age>=15 && (sportsEvent.equals("400meterrace") || sportsEvent.equals("Juvelin") || sportsEvent.equals("discus")))//400 meter race, Juvelin and discus
{
System.out.println(" Yes ");
}
else
{
System.out.println(" No (age:Min 10-12 for 50m race-female only, Min 10-15 for 100m race and Min 15 for 400m race, Juvelin and discus)");
}
}
public static void main(String[] args)
{
List<InputParticipant> stud=new ArrayList<InputParticipant>();
InputParticipant i;
i=new InputParticipant(rollNumber, firstName, lastName, age, gender, sportsEvent);
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);
List<InputParticipant> l=new ArrayList<InputParticipant>();
l.addAll(stud);
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("-----------------------------------------");
}
}
}
}
你想達到什麼目的?添加新的輸入結束? – minigeek
當我輸入第一個輸入值時,它會被添加到數組列表中。現在,當我第二次輸入時,第一個值會覆蓋顯示第二個輸入兩次。在哪裏不應該發生。 –
請把它降低到[mcve]。這裏的大部分代碼與問題無關。此外,請花時間儘可能將代碼格式設置爲可讀。 –