V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kkfnui
V2EX  ›  问与答

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

  •  
  •   kkfnui · 2018-04-09 14:31:47 +08:00 · 2088 次点击
    这是一个创建于 2420 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 使用 HashSet 去重
    2. 使用 Array 去重

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

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

    3 条回复    2018-04-09 19:44:39 +08:00
    ipwx
        1
    ipwx  
       2018-04-09 14:36:05 +08:00
    根据我 Python 里面的经验,超过 10 个对象去重,set 就比 list 快了。

    你 Java 怎么样不知道,但是这个界绝对大不过几百。
    Caturra
        2
    Caturra  
       2018-04-09 19:19:46 +08:00
    考虑手写实现 /字符集不算特别大的话,字典树也许能行?
    以每个字符串最后一个字符在字典树中的下标做标记对应每一个不重复的字符串
    再额外保存一下下标 /直接动态维护就能很轻易的去除重复的串
    线性的时间效率,空间效率视情况看实现方法(字符集大一点就得时间换空间了)
    male110
        3
    male110  
       2018-04-09 19:44:39 +08:00
    把字符串放到 redis 的 set 里行么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2822 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.