builder for HashMap

前端 未结 15 2289
迷失自我
迷失自我 2020-11-30 00:17

Guava provides us with great factory methods for Java types, such as Maps.newHashMap().

But are there also builders for java Maps?

HashM         


        
15条回答
  •  北荒
    北荒 (楼主)
    2020-11-30 00:37

    Using java 8:

    This is a approach of Java-9 Map.ofEntries(Map.entry(k1,v1), Map.entry(k2,v2), ...)

    public class MapUtil {
        import static java.util.stream.Collectors.toMap;
    
        import java.util.AbstractMap.SimpleEntry;
        import java.util.Map;
        import java.util.Map.Entry;
        import java.util.stream.Stream;
    
        private MapUtil() {}
    
        @SafeVarargs
        public static Map ofEntries(SimpleEntry... values) {
            return Stream.of(values).collect(toMap(Entry::getKey, Entry::getValue));
        }
    
        public static SimpleEntry entry(String key, Object value) {
            return new SimpleEntry(key, value);
        }
    }
    

    How to Use:

    import static your.package.name.MapUtil.*;
    
    import java.util.Map;
    
    Map map = ofEntries(
            entry("id", 1),
            entry("description", "xyz"),
            entry("value", 1.05),
            entry("enable", true)
        );
    

提交回复
热议问题