Hashmap holding different data types as values for instance Integer, String and Object

前端 未结 5 1095
别那么骄傲
别那么骄傲 2020-12-12 12:11

I need to create a hashmap with key as integer and it should hold multiple values of different data types. For example if the key is msg id and the values are

5条回答
  •  囚心锁ツ
    2020-12-12 12:22

    If you don't have Your own Data Class, then you can design your map as follows

    Map map=new HashMap();

    Here don't forget to use "instanceof" operator while retrieving the values from MAP.

    If you have your own Data class then then you can design your map as follows

    Map map=new HashMap();

    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    
    public class HashMapTest {
    public static void main(String[] args) {
        Map map=new HashMap();
        Demo d1= new Demo(1,"hi",new Date(),1,1);
        Demo d2= new Demo(2,"this",new Date(),2,1);
        Demo d3= new Demo(3,"is",new Date(),3,1);
        Demo d4= new Demo(4,"mytest",new Date(),4,1);
        //adding values to map
        map.put(d1.getKey(), d1);
        map.put(d2.getKey(), d2);
        map.put(d3.getKey(), d3);
        map.put(d4.getKey(), d4);
        //retrieving values from map
        Set keySet= map.keySet();
        for(int i:keySet){
            System.out.println(map.get(i));
        }
        //searching key on map
        System.out.println(map.containsKey(d1.getKey()));
        //searching value on map
        System.out.println(map.containsValue(d1));
    }
    
    }
    class Demo{
        private int key;
        private String message;
        private Date time;
        private int count;
        private int version;
    
        public Demo(int key,String message, Date time, int count, int version){
            this.key=key;
            this.message = message;
            this.time = time;
            this.count = count;
            this.version = version;
        }
        public String getMessage() {
            return message;
        }
        public Date getTime() {
            return time;
        }
        public int getCount() {
            return count;
        }
        public int getVersion() {
            return version;
        }
        public int getKey() {
            return key;
        }
        @Override
        public String toString() {
            return "Demo [message=" + message + ", time=" + time
                    + ", count=" + count + ", version=" + version + "]";
        }
    
    }
    

提交回复
热议问题