Java 中两个 List<String> 的有效交集?

新手上路,请多包涵

问题很简单:

我有两个列表

List<String> columnsOld = DBUtils.GetColumns(db, TableName);
List<String> columnsNew = DBUtils.GetColumns(db, TableName);

我需要得到这些的交集。有没有快速的方法来实现这一目标?

原文由 Pentium10 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 750
2 个回答

使用 Google 的 Guava 库:

 Sets.intersection(Sets.newHashSet(setA), Sets.newHashSet(setB))

注意: 这比天真地对两个列表进行交集更有效:它是 O(n+m),而 列表版本 的 O(n×m)。拥有 200 万个项目的列表是 数百万 次操作和数 万亿 次操作之间的区别。

原文由 Sergii Shevchyk 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题