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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T13:45:52+00:00 2026-05-31T13:45:52+00:00

Is there a map like data structure that uses Java Class objects as keys

  • 0

Is there a map like data structure that uses Java Class objects as keys but uses fallback to superclasses if no mapping is found? Let me give a short example:

ClassMap<Integer> map = new ClassMap<Integer>();
map.put(Object.class, 1);
map.put(Number.class, 2);

assertEquals(1, map.get(String.class));
assertEquals(2, map.get(Number.class));
assertEquals(2, map.get(Double.class));

I know that I could do the fallback manually, e.g.

WeakHashMap<Class<?>, Integer> map = // snip

Class<?> cls = Double.class;
Integer i;
do {
  i = map.get(cls);
  cls = cls.getSuperclass();
} while (i == null && cls != null);

Still I’m interested in existing or alternative solutions.

  • 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-31T13:45:53+00:00Added an answer on May 31, 2026 at 1:45 pm

    I can’t think of any other data structure that would do a reasonable job. You probably will have to code this yourself. The approach you’ve chosen will perform very well — O(n), where n is the average inheritance depth of the classes you’re going to use as keys. N will be constant (and likely very small) for any reasonable class hierarchy. It’s pretty unlikely that any other data structure will do better, or be any easier to use.

    IMO the more interesting question is how to organise the code you’re going to write yourself. One possibility is folding it up as a custom Map implementation:

    public class ClassMap<V> extends HashMap<Class<?>, V> {
        @Override
        public V get(Object key) {
            //use the logic you mentioned in your question here, with super.get(key)
        }
    }
    

    then it’s at least well contained.

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

Sidebar

Related Questions

Is there a map like data structure with integer as key , string as
Is there any way to get a map or other data structure of the
I am looking for a data structure that will sort objects based on a
I need to test my data structure (in java) which is like a dictionary
I would like to represent matrix-like data in a suitable data-structure in Java. The
I have a templated function fct that uses some complex data structure based on
Does map() iterate through the list like for would? Is there a value in
Is there a Java Map keySet() equivalent for C++'s std::map ? The Java keySet()
I have a table that contains some data given below. It uses a tree
It seems when I grab some hierarchical ActiveRecord structure that there are quite a

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.