Search code examples
javacollectionsdictionaryhashmap

How to retrieve key & values from hashmap


I am trying to insert the values to hash map through object, and i want to check if the values are inserted in to hash map. so i am using this code but in runtime i am not able to get any output.

How to resolve this?

Code:

import java.util.*;
import java.io.*;
import java.lang.*;

public class TaskList
{   

    private static HashMap<Integer, Object[]> dataz = new HashMap<Integer,Object[]>();
    private static  HashMap<Integer, Object[]> screen_dataz = new HashMap<Integer,Object[]>();
    public final static Object[][] longValues = {{"10", "kstc-proc", "10.10.10.10.10.","5","O"},{"11", "proc-lvk1", "12.1.2.","4","O"},{"13", "trng-lvk1", "4.6.1.","3","O"}};
    private static String sl,pid,tid,mval,status;

    public static void main(String args[])
    {
        addTask();
    }

    public static void addTask()
    {  
        for (int k=0; k<longValues.length; k++)
        {
        screen_dataz.put(k,longValues);
        }
        Set mapSet = (Set) screen_dataz.entrySet();
        Iterator mapIterator = mapSet.iterator();
        while (mapIterator.hasNext()) 
        {
        Map.Entry mapEntry = (Map.Entry) mapIterator.next();
        String keyValue = (String) mapEntry.getKey();
        String value = (String) mapEntry.getValue();
        System.out.println(value);
        }
    }
}

Solution

  • First, you must add a row of the longValues matrix to the map, and not the whole matrix:

     for (int k=0; k<longValues.length; k++)
     {
         screen_dataz.put(k,longValues[k]);
     }
    

    Then, while iterating extract the value as Object[] and not String, and key as Integer

     while (mapIterator.hasNext()) 
     {
         Map.Entry mapEntry = (Map.Entry) mapIterator.next();
         Integer keyValue = (Integer) mapEntry.getKey();
         Object[] value = (Object[]) mapEntry.getValue();
         //iterate over the array and print each value
         for (int i=0; i<value.length; i++) {
             System.out.print(value[i] + " ");
         }
         System.out.println();
     }