我创建了一个ArrayList,我希望根据用户输入添加事件的参与者。添加的每个参与者将自动获得一个起始编号,其中第一个参与者应该获得数字100.对于之后添加的每个参与者,起始编号将增加一个(101,102,103等)任何建议如何执行此操作?
到目前为止,这是我的代码:
public void addParticipant() {
int startNumber = 100;
System.out.println("First name: ");
String name = readString();
System.out.println("Last name: ");
String lastName = readString();
System.out.println("Team: ");
String team = readString();
allParticipants.add(new Participant(name, lastName, team, startNumber));
System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");
答案 0 :(得分:2)
将startNumber存储为实例变量而不是函数中的局部变量。添加新参与者后增加变量。
private int startNumber = 100;
public void addParticipant(){
// Assign the startNumber to the new participant.
startNumber++;
}
答案 1 :(得分:0)
有两种简单的方法可以做到这一点。
第一种方式:不是将参与者编号存储在本地变量中,而是将其存储在字段(实例变量)中,并在每次添加新参与者时将其递增1。我会是这样的:
public class SomeClass {
private int startNumber = 100;
// any other code in the class...
public void addParticipant() {
System.out.println("First name: ");
String name = readString();
System.out.println("Last name: ");
String lastName = readString();
System.out.println("Team: ");
String team = readString();
allParticipants.add(new Participant(name, lastName, startNumber));
System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");
// Increment field startNumber
startNumber = startNumber + 1;
}
}
第二种方式:使用ArrayList的大小作为计数器。这就是我的意思:
public class SomeClass {
// any other code in the class...
public void addParticipant() {
int startNumber = allParticipants.size() + 100;
System.out.println("First name: ");
String name = readString();
System.out.println("Last name: ");
String lastName = readString();
System.out.println("Team: ");
String team = readString();
allParticipants.add(new Participant(name, lastName, startNumber));
System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");
}
}
快乐的编码!