Key existence check in HashMap

Do you ever store a null value? If not, you can just do: Foo value = map.get(key); if (value != null) { … } else { // No such key } Otherwise, you could just check for existence if you get a null value returned: Foo value = map.get(key); if (value != null) { … … Read more

How to convert a ruby hash object to JSON?

One of the numerous niceties of Ruby is the possibility to extend existing classes with your own methods. That’s called “class reopening” or monkey-patching (the meaning of the latter can vary, though). So, take a look here: car = {:make => “bmw”, :year => “2003”} # => {:make=>”bmw”, :year=>”2003″} car.to_json # NoMethodError: undefined method `to_json’ … Read more

JavaScript hashmap equivalent

Hash your objects yourself manually, and use the resulting strings as keys for a regular JavaScript dictionary. After all, you are in the best position to know what makes your objects unique. That’s what I do. Example: var key = function(obj){ // Some unique object-dependent key return obj.totallyUniqueEmployeeIdKey; // Just an example }; var dict … Read more

What is the difference between the HashMap and Map objects in Java?

There is no difference between the objects; you have a HashMap<String, Object> in both cases. There is a difference in the interface you have to the object. In the first case, the interface is HashMap<String, Object>, whereas in the second it’s Map<String, Object>. But the underlying object is the same. The advantage to using Map<String, … Read more

C# Java HashMap equivalent

Dictionary is probably the closest. System.Collections.Generic.Dictionary implements the System.Collections.Generic.IDictionary interface (which is similar to Java’s Map interface). Some notable differences that you should be aware of: Adding/Getting items Java’s HashMap has the put and get methods for setting/getting items myMap.put(key, value) MyObject value = myMap.get(key) C#’s Dictionary uses [] indexing for setting/getting items myDictionary[key] = … Read more

Convert object array to hash map, indexed by an attribute value of the Object

This is fairly trivial to do with Array.prototype.reduce: var arr = [ { key: ‘foo’, val: ‘bar’ }, { key: ‘hello’, val: ‘world’ } ]; var result = arr.reduce(function(map, obj) { map[obj.key] = obj.val; return map; }, {}); console.log(result); // { foo:’bar’, hello:’world’ } Note: Array.prototype.reduce() is IE9+, so if you need to support older … Read more

Java Hashmap: How to get key from value?

If your data structure has many-to-one mapping between keys and values you should iterate over entries and pick all suitable keys: public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) { Set<T> keys = new HashSet<T>(); for (Entry<T, E> entry : map.entrySet()) { if (Objects.equals(value, entry.getValue())) { keys.add(entry.getKey()); } } return keys; } In … Read more

How to remove a key from Hash and get the remaining hash in Ruby/Rails?

Rails has an except/except! method that returns the hash with those keys removed. If you’re already using Rails, there’s no sense in creating your own version of this. class Hash # Returns a hash that includes everything but the given keys. # hash = { a: true, b: false, c: nil} # hash.except(:c) # => … Read more