Alex Rivera | Logout

Correct way to initialize HashMap and can HashMap hold different value types?

Asked 2009-08-28T16:01:57.077
64

So I have two questions about HashMaps in Java:

  1. What is the correct way to initialize a HashMap? I think it might be best in my situation to use:

    HashMap x = new HashMap();
    

    But Eclipse keeps suggesting that I use:

    HashMap<something, something> map = new HashMap();
    

    Which is better?

  2. Can a HashMap hold different types of objects/data types as values? For example, would this work and be OK:

    map.put("one", 1);
    map.put("two", {1, 2});
    map.put("three", "hello");
    

    In the first put(), I want an int as a value, in the second an int[], and third a string. Is this okay to do in Java with HashMaps? Also, is it okay to store a HashMap as a value within a HashMap?

Edit
Report

1 Answer

4

Eclipse is recommending that you declare the type of the HashMap because that enforces some type safety. Of course, it sounds like you're trying to avoid type safety from your second part.

If you want to do the latter, try declaring map as HashMap<String,Object>.

answered 2009-08-28T16:05:30.733

Your Answer