【发布时间】:2016-09-11 21:13:19
【问题描述】:
我试图获取用户 ID 并根据列表检查它是否已经存在。如果存在,则打印“ID 已存在”,如果不存在,则输入用户名并将其存储在列表中。
private LinkedList<Person> people = new LinkedList<Person>();
private void addPerson(){
int personId = readPersonId();
Person person = person(personId);
if (person.hasId){
System.out.println("ID already exists");
}
else{
String s = readName();
people.add(new Person(personId, s, 2));
}
}
但是我的程序由于某种原因在第一个循环中停止了。
【问题讨论】:
-
您没有显示任何循环...您的程序“停止”是什么意思?它会挂起还是给出异常?
-
还有什么是
person.hasId? -
考虑使用 Set 而不是 List。它不允许包含重复项。
-
private Person person(int id){ for (Person person : people){ if (person.hasId(id)){ return person; } } return null; }这是返回具有 id 的人的方法,否则返回 null。 has.id 是一个布尔值,包含选定的 i.d 是否在列表中。我应该在 OP 中添加这个,但它让我忘记了。到目前为止,我尝试过的任何事情都没有奏效。