I want to transform keys in a HashMap. The map has lower_underscore keys but an expected map should have camelCase keys. The map may also have null values.
The straightfoward code to do this is here:
    Map<String, Object> a = new HashMap<String, Object>() {{
        put("foo_bar", 100);
        put("fuga_foga", null); // A value may be null. Collectors.toMap can't handle this value.
    }};
    Map<String, Object> b = new HashMap<>();
    a.forEach((k,v) -> b.put(toCamel(k), v));
I want to know the method to do this like Guava's Maps.transformValues() or Maps.transformEntries(), but these methods just transforms values.
Collectors.toMap() is also close, but this method throws NullPointerException when a null value exists.
    Map<String, Object> collect = a.entrySet().stream().collect(
            Collectors.toMap(x -> toCamel(x.getKey()), Map.Entry::getValue));
 
     
    