您如何通过链表查找列表中的第一个重复对象,是否可以使用嵌套for循环来完成?
答案 0 :(得分:0)
创建一个新的HashMap。迭代您的列表并将其中的对象添加到HashMap,例如将它们映射到Boolean.TRUE。在将对象添加到HashMap之前,请检查它是否已经在HashMap中。如果它已经存在 - 这是第一个重复。
答案 1 :(得分:0)
您还可以向HashSet添加元素,直到遇到第一个副本:
Set<YourObject> set = new HashSet<YourObject>();
for (YourObject obj : yourList) {
if (!set.add(obj)) { // check if already existed in the set
return obj; // found the duplicate
}
}
应该比嵌套循环更有效;)
答案 2 :(得分:0)
您可以在列表中检查对象的第一个和最后一个索引。如果两者的减法都低于0,那意味着你有重复。
LinkedList<String> s = new LinkedList<>();
/*
* Fill it here
*/
for(String str : s){
if(linkedList.indexOf(str) - linkedList.lastIndexOf(str) < 0){
System.out.println("First duplicate is: " + str);
break;
}
}