从Java中的两个列表中查找第一个列表中的唯一元素

时间:2016-08-16 19:37:06

标签: java list

我试图通过将其与时间复杂度优于O(mn)的另一个列表进行比较来查找主列表中的唯一元素。 例如: -

listA, listB . I want to get unique elements only in listA and add to a new list.

这就是我做的事情

for (String item : listA) {
 if (!listB.contains(item)) {
   newList.add(item)
 }
}

这里的时间复杂度是O(mn)。任何人都可以帮助我找到更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

Set<String> setB = new HashSet<>(listB);
for (String item : listA) {
 if (!setB.contains(item)) {
    newList.add(item);
 }
}

像@Andy Turner建议的那样。 这里,Set.contains Time Complexity是O(1)。