Do you know a good and free Hashtable imlementation for Delphi 5 ?
I need to organize a huge amount of data in a hastable and I am bit worried about memory leak issues that I found in most available implementations on the web.
Tks
Do you know a good and free Hashtable imlementation for Delphi 5 ?
I need to organize a huge amount of data in a hastable and I am bit worried about memory leak issues that I found in most available implementations on the web.
Tks
EZDSL is a library of data structures, including a hash table, written by Julian Bucknall of TurboPower and DevExpress... I haven't used them, but I would have high expectations for this guy's code.
You can try my GpStringHash. Guaranteed no memory leaks, but works only with strings. I think it should work in D5.
You can also check out the open-source / formerly commercial TurboPower SysTools. Not sure how much it is being updated. At one point Julian Bucknall recommended it over his EZDSL library, although that was back when he still worked fur TurboPower and it was being maintained / updated.
Peter Below just posted a rework of something he did to the Embarcadero newgroups in the public.attachments. There's something under his profile on the CodeGear site at http://cc.codegear.com/Item/24825 taht describes it.
Apart from the actual hash-table implementation, the hash-function being used itself is also important.
A good one is a hash function from Bob Jenkins, read his paper here.
This algorithm was improved upon recently for cases where the input is DWord-sized (See the C-version of it here). This version is faster, and results in two 32-bit hash-values instead of one. (This second hash-value could be used to speed up in-bucket selection for example.)
For those interested, I could paste the Delphi-translation here? (It's about 170 lines of code.)
RBS Antidot is very good library of containers (including hash-based UnsortedMap).