我的课程是一项体育比赛,包括活动,参与者,团队,成绩和课程。我在最终测试期间发现有关参与者及其起始编号属性的问题。
添加时会为参与者提供一个起始编号。第一个获得100,下一个获得101,102等等。如果删除参与者102并添加新参与者,则新参与者也获得数字102,这似乎是我的问题。显然这些起始数字不应该重复使用。有没有办法给新参与者以前没有给出新的开始数字?
来自参与者课程:
private int startNumber;
public int getStartNumber() {
return startNumber;
}
public void setStartNumber(int startNumber) {
this.startNumber = startNumber;
}
+ other attributes and methods
来自程序类:
private void addStartNumber(Participant p) {
if(allParticipants == null || allParticipants.isEmpty()){
p.setStartNumber(100);
}else{
p.setStartNumber(findLastStartNumber()+1);
}
}
private int findLastStartNumber(){
int lastNumber = 0;
for(int i = 0 ; i < allParticipants.size() ; i++){
lastNumber = allParticipants.get(allParticipants.size()-1).getStartNumber();
}
return lastNumber;
}
答案 0 :(得分:0)
当我理解问题时,您可以在局部变量中保留最后一个起始编号:
private int lastStartNumber = 0;
private int getNextStartNumber(){
lastStartNumber = lastStartNumber + 1;
return lastStartNumber;
}
答案 1 :(得分:0)
让每个参与者的构造者管理起始编号。
这是分配起始编号所需的唯一代码:
class Participant {
static int nextStartNumber = 100;
private int startNumber;
public Participant() {
this.startNumber = nextStartNumber++;
}
}