我正在尝试接收用户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));
}
}
然而,由于某种原因,我的程序在第一个循环中停止。
答案 0 :(得分:0)
浏览您已经拥有的人员列表,并查找具有相同ID的任何人。如果没有匹配的那个,那就去吧,把新人添加到列表中。
private LinkedList<Person> people = new LinkedList<Person>();
private void addPerson(){
int personId = readPersonId();
boolean found = false;
for (Person curr : people) {
if (curr.getId() == personId){
System.out.println("ID already exists");
found = true;
break;
}
}
if (!found) {
Person person = person(personId);
String s = readName();
people.add(person);
}
}
答案 1 :(得分:0)
您可以将您的arraylist转储到一个集合中,然后比较它们2.如果集合的大小低于arraylist大小,那么就有重复。
ArrayList<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);
if(set.size() < list.size()){
/* There are duplicates in your arrayList */
}