【问题标题】:Hashtable implementation for Delphi 5 [closed]Delphi 5的哈希表实现[关闭]
【发布时间】:2010-09-15 19:15:34
【问题描述】:

您知道用于 Delphi 5 的良好且免费的 Hashtable 实现吗?

我需要在一个 hastable 中组织大量数据,我有点担心我在网络上大多数可用的实现中发现的内存泄漏问题。

Tks

【问题讨论】:

    标签: delphi data-structures memory-leaks hashtable


    【解决方案1】:

    【讨论】:

    • 我们已经尝试了 benya.com 提供的实现,但我们遇到了一些内存泄漏问题。你试过第二个吗?求答案
    • 没有。如果数据量很大,我会使用 TList、TStringList 或 TClientDataSet + BinarySearch。
    【解决方案2】:

    您可以尝试在Koders 中搜索。
    Here 您有一个简单的实现 (Winjab project),或者 this 来自JCL

    注意:使用前请查看代码许可。

    【讨论】:

      【解决方案3】:

      EZDSL 是一个数据结构库,包括一个哈希表,由 TurboPower 和 DevExpress 的 Julian Bucknall 编写...我没用过,但我对这家伙的代码抱有很高的期望。

      http://www.boyet.com/FixedArticles/EZDSL.html

      【讨论】:

      • 我多年来一直使用 EZDSL 和收缩包装的应用程序,代码非常好。良好的性能,无需担心内存泄漏。
      【解决方案4】:

      你可以试试我的GpStringHash。保证没有内存泄漏,但仅适用于字符串。我认为它应该在 D5 中工作。

      【讨论】:

        【解决方案5】:

        您还可以查看开源/以前的商业 TurboPower SysTools。不知道更新了多少。 Julian Bucknall 曾在他的 EZDSL library 上推荐过它,尽管那是在他还在使用 TurboPower 并且正在维护/更新的时候。

        【讨论】:

        • 其实Turbo-Powers LockBox大概就是他想要的吧,最新版本更新在songbeamer.com/delphi
        • LockBox 做加密哈希 - SysTools 和 EZDSL 做哈希表,这是一种数据结构。
        【解决方案6】:

        Peter below 刚刚在 public.attachments 中发布了他对 Embarcadero 新组所做的一些修改。在他的 CodeGear 网站 http://cc.codegear.com/Item/24825 的个人资料下有一些东西描述了它。

        【讨论】:

          【解决方案7】:

          结帐DeCAL,其中包括哈希表和更多数据结构。

          【讨论】:

            【解决方案8】:

            除了实际的哈希表实现之外,所使用的哈希函数本身也很重要。

            Bob Jenkins read his paper here 的哈希函数是一个不错的选择。

            此算法最近针对输入为双字大小 (See the C-version of it here) 的情况进行了改进。这个版本更快,并且产生两个 32 位散列值而不是一个。 (例如,第二个哈希值可用于加速桶内选择。)

            对于那些感兴趣的人,我可以在这里粘贴 Delphi 翻译吗? (大约 170 行代码。)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-04-24
              • 2012-06-03
              • 2016-03-25
              • 2011-12-13
              • 2011-08-11
              • 2011-10-14
              • 2011-09-15
              相关资源
              最近更新 更多