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 8421091
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T03:02:59+00:00 2026-06-10T03:02:59+00:00

I know the difference between Open Addressing and Chaining for resolving hash collisions .

  • 0

I know the difference between Open Addressing and Chaining for resolving hash collisions . Most of the basic hash based data structures like HashSet,HashMap in Java primarily use chaining technique. I read that ThreadLocal actually uses a probing scheme . So I want to understand why is open addressing not so much used in Java ? I mean it would be difficult to delete records using that scheme , in the sense that you have to mark those cells with some special handling . However it seems like memory requirement will be low for open addressing scheme.

Edit : I just want to understand the possible major reason/reasons for this design decision . I do not want finer details . Also I would like to know why ThreadLocal uses the lesser common technique of open addressing . I guess the two answers can be related together . So I prefer to ask in the same question itself.

  • 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-06-10T03:03:01+00:00Added an answer on June 10, 2026 at 3:03 am

    I am currently discussing memory-compact reimplementations of HashMap and HashSet with, among others, Doug Lea. This particular question hasn’t come up, but here’s my first thoughts on the question…

    • Chained hash tables degrade reasonably gracefully. Whether it’s higher load factors or lots of hash collisions, chaining doesn’t degrade nearly as quickly as open addressing can.
    • As you’ve said, remove is…not a pleasant operation on open-addressed tables. As a general rule, remove is the least common operation on hash tables, but there are applications for which it’s more common, and bad performance would be noticed.
    • I also suspect — though I don’t have much data — that implementing a “linked” open-addressed hash table would be noticeably more difficult. LinkedHashMap is written as a subclass of HashMap, and borrows most of the implementation details; it’s somewhat easier to implement the linked list of entries when the entries are discrete objects — and at that point, you’re already most of the way to a chained implementation.
    • Nothing in the spec ties them to this implementation — they’re always free to mess around with it later.
    • The JDK collections libraries…don’t make memory consumption an especially high priority. Memory is cheap. (You may or may not agree with this, but it’s definitely a noticeable trend.)
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know the difference between ASP.NET webforms and ASP.NET MVC and I've seen quite
I know the difference between manage and unmanaged DirectX. My question is if I
I know the difference between the points-to (->) and dot (.) operator but I
I want to know technical difference between WebDriver Wait timeout and implicitlyWait timeout.
I want to know the difference between : $this->forward(module, action); And $this->redirect(module/action); My first
Please let me know the difference between ~ and ! operator in java.
Does anybody know the difference between these two commands to switch and track a
I am eager to know the difference between a const variable and a static
I just want to know the difference between List<string> lst = new List() and
As title suggests I want to know the difference between the change and click

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.