• MapBuilder,操作集合工具类



    public class MapBuilder {
    /**
    * Creates an instance of {@code HashMap}
    */
    public static <K, V> HashMap<K, V> newHashMap() {
    return new HashMap<>();
    }

    /**
    * Returns the empty map.
    */
    public static <K, V> Map<K, V> of() {
    return newHashMap();
    }

    /**
    * Returns map containing a single entry.
    */
    public static <K, V> Map<K, V> of(K k1, V v1) {
    Map<K, V> map = of();
    map.put(k1, v1);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    map.put(k3, v3);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    map.put(k3, v3);
    map.put(k4, v4);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    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) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    map.put(k3, v3);
    map.put(k4, v4);
    map.put(k5, v5);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    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) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    map.put(k3, v3);
    map.put(k4, v4);
    map.put(k5, v5);
    map.put(k6, v6);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    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) {
    Map<K, V> map = of();
    map.put(k1, v1);
    map.put(k2, v2);
    map.put(k3, v3);
    map.put(k4, v4);
    map.put(k5, v5);
    map.put(k6, v6);
    map.put(k7, v7);
    return map;
    }

    /**
    * Returns map containing the given entries.
    */
    public static <K, V> Builder<K, V> builder() {
    return new Builder<>();
    }

    public static final class Builder<K, V> {

    private Map<K, V> map;
    private boolean underConstruction;

    private Builder() {
    map = newHashMap();
    underConstruction = true;
    }

    public Builder<K, V> put(K k, V v) {
    if (!underConstruction) {
    throw new IllegalStateException("Underlying map has already been built");
    }
    map.put(k, v);
    return this;
    }

    public Map<K, V> build() {
    if (!underConstruction) {
    throw new IllegalStateException("Underlying map has already been built");
    }
    underConstruction = false;
    return map;
    }
    }

    }
  • 相关阅读:
    Solution to LeetCode Problem Set
    《Cracking the Coding Interview》读书笔记
    诗词收集——用于人文素养扫盲
    2015年清华大学计算机系考研总结
    编程知识大杂烩
    hihoCoder 1175:拓扑排序二
    Hackerrank
    Hackerrank
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/hengzhou/p/9543597.html
Copyright © 2020-2023  润新知