Solved

MAP of multiple datatypes

Posted on 2009-04-03
3
645 Views
Last Modified: 2013-11-23
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
Comment
Question by:lostlinkpr
  • 2
3 Comments
 
LVL 25

Accepted Solution

by:
InteractiveMind earned 500 total points
ID: 24066456
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
 
LVL 1

Author Comment

by:lostlinkpr
ID: 24067826
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
 
LVL 25

Expert Comment

by:InteractiveMind
ID: 24067977
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
wordappend challenge 8 145
how do i compare an object based on two fields 6 49
why cannot we forward request once the response is committed 2 33
factorial example 4 34
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
This video teaches viewers about errors in exception handling.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now