对一万个字符串去重那种方式效率更高?

2018-04-09 14:31:47 +08:00
 kkfnui
  1. 使用 HashSet 去重
  2. 使用 Array 去重

一般我们都会说数据量大的情况下使用 HashSet,在少量的数据情况下 Array

如何评估数据量是大还是小,多大的数据量才是大呢?

2088 次点击
所在节点    问与答
3 条回复
ipwx
2018-04-09 14:36:05 +08:00
根据我 Python 里面的经验,超过 10 个对象去重,set 就比 list 快了。

你 Java 怎么样不知道,但是这个界绝对大不过几百。
Caturra
2018-04-09 19:19:46 +08:00
考虑手写实现 /字符集不算特别大的话,字典树也许能行?
以每个字符串最后一个字符在字典树中的下标做标记对应每一个不重复的字符串
再额外保存一下下标 /直接动态维护就能很轻易的去除重复的串
线性的时间效率,空间效率视情况看实现方法(字符集大一点就得时间换空间了)
male110
2018-04-09 19:44:39 +08:00
把字符串放到 redis 的 set 里行么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX