# Tutorial :Convert Hash Map to 2D Array

### Question:

What is the easiest way to convert a HashMap into a 2D array?

### Solution:1

``HashMap map = new HashMap();  Object[][] arr = new Object[map.size()][2];  Set entries = map.entrySet();  Iterator entriesIterator = entries.iterator();    int i = 0;  while(entriesIterator.hasNext()){        Map.Entry mapping = (Map.Entry) entriesIterator.next();        arr[i][0] = mapping.getKey();      arr[i][1] = mapping.getValue();        i++;  }  ``

### Solution:2

This can only be done when the types of both key and value are the same.

Given:

``HashMap<String,String> map;  ``

I can create an array from this map with this simple loop:

``String[][] array = new String[map.size()][2];  int count = 0;  for(Map.Entry<String,String> entry : map.entrySet()){      array[count][0] = entry.getKey();      array[count][1] = entry.getValue();      count++;  }  ``

### Solution:3

``Object[][] array = new Object[][]{map.keySet.toArray(), map.entrySet.toArray()};  ``

Or, to be more specific about the types, let's say they're `Strings`: `Set`'s `toArray` takes a hint argument, so that

``String[][] array = new String[][]{map.keySet.toArray(new String[0]), map.entrySet.toArray(new String[0])};  ``

Edit: I just realized a couple of days later that while this may work by chance, in general it shouldn't. The reason is the intermediate `Set`; although it is "backed by the map", there seems to be no explicit guarantee that it will iterate in any particular order. Thus the key- and entry-arrays might not be in the same order, which is a disaster for sure!

### Solution:4

Iterate over your Map using entrySet, and fill your array record with the Entry object

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »