builder for HashMap

前端 未结 15 2278
迷失自我
迷失自我 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:50

    A simple map builder is trivial to write:

    public class Maps {
    
        public static  MapWrapper map(Q q, W w) {
            return new MapWrapper(q, w);
        }
    
        public static final class MapWrapper {
            private final HashMap map;
            public MapWrapper(Q q, W w) {
                map = new HashMap();
                map.put(q, w);
            }
            public MapWrapper map(Q q, W w) {
                map.put(q, w);
                return this;
            }
            public Map getMap() {
                return map;
            }
        }
    
        public static void main(String[] args) {
            Map map = Maps.map("one", 1).map("two", 2).map("three", 3).getMap();
            for (Map.Entry entry : map.entrySet()) {
                System.out.println(entry.getKey() + " = " + entry.getValue());
            }
        }
    }
    

提交回复
热议问题