|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|