[英]How do i find duplicates across a list
我試圖接收一個用戶 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));
}
}
但是我的程序由於某種原因在第一個循環中停止。
瀏覽您已經擁有的人員列表,並尋找具有相同 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);
}
}
您可以將 arraylist 轉儲到一個集合中,然后比較這兩個。如果集合的大小小於 arraylist 的大小,則存在重復項。
ArrayList<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);
if(set.size() < list.size()){
/* There are duplicates in your arrayList */
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.