gpt4 book ai didi

java - 使用 removeAll() 或其他方法比较两个列表

转载 作者:行者123 更新时间:2023-11-30 10:14:31 24 4
gpt4 key购买 nike

我有两个列表,我们称它们为列表 A 和列表 B。这两个列表都包含名称并且没有重复项(它们是唯一值)。列表 B 中的每个名称都可以在列表 A 中找到。我想找出列表 B 中缺少哪些名称,以便将这些缺少的名称插入数据库。基本示例:

List<String> a = new ArrayList<>(Arrays.asList("name1", "name2", "name3", "name4","name5","name6"));
List<String> b = new ArrayList<>(Arrays.asList("name1", "name2", "name4", "name6"));

a.removeAll(b);
//iterate through and insert into my database here

从我搜索的内容来看,removeAll() 似乎是一个首选答案。就我而言,我正在处理各种可能的数量。它可以是 500 到 50,000 个名称之间的任何地方。 removeAll() 是否足够?我读过 removeAll() 是 O(n^2) 这对于非常小的数量可能不是问题,但对于更大的数量,听起来可能是这样。我想这也取决于用户对何时被视为问题的耐心?最后,我想知道是否有更好的方法可以在不增加大量复杂性的情况下做到这一点,因为我确实很欣赏简单性(在某种程度上)。

最佳答案

如果您对这些列表所做的唯一事情就是将它们插入数据库,那么您实际上不应该关心元素的顺序。您可以使用 HashSet 代替 ArrayList 并获得 O(n) 性能而不是 O(n2)。作为附带奖励,使用 Set 将确保 ab 中的值确实是唯一的。

关于java - 使用 removeAll() 或其他方法比较两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50850308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com