Java checks the existence of the key in the double nested hash map
•
Java
I have a double nested HashMap HashMap, which wants to check the existence of the key and place the new value At present, I am nesting if statements to check the existence of keys at each level Is there a more effective way to code?
HashMap<Foo1,HashMap<Foo2,HashMap<Foo3,Double>>> my_map = new HashMap<Foo1,Double>>>(); if (my_map.containsKey(foo1key)) { if (my_map.get(foo1key).containsKey(foo2key)) { if (my_map.get(foo1key).get(foo2key).containsKey(foo3key)) { return my_map.get(foo1key).get(foo2key).get(foo3key); } } } double foo3key = getValue(); // do the above steps again to put foo3key into map.
Solution
The most effective method (assuming that your value is always non null) is as follows:
HashMap<Foo2,Double>> map2 = my_map.get(foo1Key); if(map2!=null) { HashMap<Foo3,Double> map3 = map2.get(foo2Key); if (map3!=null) { Double value = map3.get(foo3Key); if (value!=null) { return (double)value; } else { // add value to map3,or whatever } } }
This utilizes the following technologies:
>If get() returns null, it means that the key does not exist (because null values are not allowed) > save the return value of the previous get for the next search, so you don't need to link together
This is a bit messy – if you do a lot of this, I suggest breaking it down into a separate function so that you can do this:
double value = getNestedValue(my_map,foo1Key,foo2Key,foo3Key);
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码