|  | @@ -0,0 +1,86 @@
 | 
	
		
			
				|  |  | +package cn.com.goldenwater.core.builder;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.Objects;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * Map构建器
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @author LinQiLong
 | 
	
		
			
				|  |  | + * @date 2024/2/22 16:50
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +public class MapBuilder<K, V> {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private final Map<K, V> map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private MapBuilder() {
 | 
	
		
			
				|  |  | +        this.map = new HashMap<>(16);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private MapBuilder(Map<K, V> map) {
 | 
	
		
			
				|  |  | +        this.map = Objects.isNull(map) ? new HashMap<>(16) : map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> MapBuilder<K, V> builder() {
 | 
	
		
			
				|  |  | +        return builder(null);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> MapBuilder<K, V> builder(Map<K, V> map) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>(map);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of() {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).put(k6, v6).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).put(k6, v6).put(k7, v7).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).put(k6, v6).put(k7, v7).put(k8, v8).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).put(k6, v6).put(k7, v7).put(k8, v8).put(k9, v9).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10) {
 | 
	
		
			
				|  |  | +        return new MapBuilder<K, V>().put(k1, v1).put(k2, v2).put(k3, v3).put(k4, v4).put(k5, v5).put(k6, v6).put(k7, v7).put(k8, v8).put(k9, v9).put(k10, v10).build();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public MapBuilder<K, V> put(K key, V value) {
 | 
	
		
			
				|  |  | +        this.map.put(key, value);
 | 
	
		
			
				|  |  | +        return this;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public Map<K, V> build() {
 | 
	
		
			
				|  |  | +        return this.map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |