Java usage of HashMap or Map with multidimensional arrays

user2575429 picture user2575429 · Jul 18, 2013 · Viewed 10.5k times · Source

I would like to use HashMaps<String, V> where the value type V should be a two dimensional int array (int[][]).

Map<String,int[][]> map = new HashMap<>();
int[][] a = new int[][]{ {1, 2} };
map.put("test", a);
System.out.println("Test:" + map.containsKey("test"));  // Test: true
System.out.println("key ==== " + map.get("test"));      // Key === [[I@19a8942

I am trying to have a key that access a unique value i.e. a 2-dimensional array, the size of the array is fixed array[1][3], this is constant. Number of keys will grow with time but not the arrays. For example:

Key1 -> [no1, no2, no3]
key2 -> [no4, no5, no6]
  1. I would like to access the array values, now I get an error.
  2. Is there a better way of implementing this?. Ideally I would like it to be sorted by keys.

I am not an expert in Java but after some reading about maps I felt this works best for me.

Answer

arshajii picture arshajii · Jul 18, 2013

I would like to access the array values, now I get an error.

Not sure what you mean here, but you seem to be on the right track.

System.out.println(map.get("test")[0][1]);
2

Ideally I would like it to be sorted by keys.

You can use a TreeMap, which is sorted on the natural ordering of its keys.