Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 655
  • Last Modified:

MAP of multiple datatypes

Hi,

I'm new to JAVA and I'm trying to achieve something that the JAVA Map seems to be the solution for, but I'm hitting a wall. Basically I want to have a MAP of values BUT with different data types.  That doesn't work (maybe I'm doing something wrong) as it asks me to declare the Map parameterized.

Below is a sample snippet of what I want to do.

Note: I know I can use the Memento pattern to achieve this, but I'm wondering if this is at all possible.
public class MyClass{
 
protected Map instance;
 
  public void setName( String sName ){
    this.instance.put("sName",sName);
  }
  public void setDate(Date date){
    this.instance.put("date", date)
  }
  public Map getInstanceState(){
    return Collections.unmodifiableMap(this.instance);
  }
}

Open in new window

0
lostlinkpr
Asked:
lostlinkpr
  • 2
1 Solution
 
InteractiveMindCommented:
Why not just use a HashMap? (Attached is an example)

import java.util.HashMap;
 
public class Ex
{
   public Ex()
   {
      HashMap hm=new HashMap();
      hm.put("sn","InteractiveMind");
      hm.put("size",new Integer(200));
      
   }
   
   public static void main(String[]a)
   {new Ex();}
}

Open in new window

0
 
lostlinkprAuthor Commented:
Thank you, that works!  The compiler (Eclipse) still throws a warning saying the HashMap should be parameterized but it works well.

final snippet:



protected HashMap inst = new HashMap();
 
    /*
     * Get the state of the object properties at a specific moment
     * 
     * @return unmodifiable SortedMap (memento of object)
     */
    public Map getMemento(){
    	return Collections.unmodifiableSortedMap( new TreeMap(this.inst) );
    }

Open in new window

0
 
InteractiveMindCommented:
Yes, from Java 5 onwards, parametrisation is available (and thus recommended by the compiler), but it's not necessary, just good coding practice (when viable).
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now