Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6590355
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T17:17:20+00:00 2026-05-25T17:17:20+00:00

As we know there are 2 classical strategies to collision resolution: Separate chaining and

  • 0

As we know there are 2 classical strategies to collision resolution: Separate chaining and Open addressing.

I’m wondering which one was chosen for HashTable/Dictionary in .net.

Or there were used some other strategy?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T17:17:20+00:00Added an answer on May 25, 2026 at 5:17 pm

    It’s all described in this paper on the MSDN : An Extensive Examination of Data Structures Using C# 2.0

    …collision resolution technique called rehasing, which is the
    technique used by the .NET Framework’s Hashtable class. In the final
    section, we’ll look at the Dictionary class, which uses a collision
    resolution technique knows as chaining.
    ….

    … Rehasing works as follows: there is a set of hash different
    functions, H1 … Hn, and when inserting or retrieving an item from
    the hash table, initially the H1 hash function is used. If this leads
    to a collision, H2 is tried instead, and onwards up to Hn if needed.
    The previous section showed only one hash function, which is the
    initial hash function (H1). The other hash functions are very similar
    to this function, only differentiating by a multiplicative factor. In
    general, the hash function Hk is defined as:

     Hk(key) = [GetHash(key) + k * (1 + (((GetHash(key) >> 5) + 1) %  (hashsize – 1)))] % hashsize
    

    The Dictionary class differs from the Hashtable class in more ways
    than one. In addition to being strongly-typed, the Dictionary also
    employs a different collision resolution strategy than the Hashtable
    class, using a technique referred to as chaining. Recall that with
    probing, in the event of a collision another slot in the list of
    buckets is tried. (With rehashing, the hash is recomputed, and that
    new slot is tried.) With chaining, however, a secondary data structure
    is utilized to hold any collisions. Specifically, each slot in the
    Dictionary has an array of elements that map to that bucket. In the
    event of a collision, the colliding element is prepended to the
    bucket’s list.

    Remember only the first sentence is my own 🙂

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to know if there are any ways one can perform 'locking'
I know there is a registry key indicating the install directory, but I don't
I know there are a lot of positive things mod-rewrite accomplishes. But are there
I know there are quite a few line count tools around. Is there something
I know there have been a few threads on this before, but I have
I know there is a way to add a IE control, how do you
I know there is a function somewhere that will accept a client rect and
I know there's some JAVA_OPTS to set to remotely debug a Java program. What
I know there is a Jackpot API http://jackpot.netbeans.org/docs/org-netbeans-modules-jackpot/overview-summary.html for programmatic access the the rules
I know there are HTML entities for 1/2, 1/4, and 3/4, but are there

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.