From a65cd34ba895a5d51dcbbdb145aa119d4d06c306 Mon Sep 17 00:00:00 2001 From: Run Yan Date: Thu, 12 Sep 2019 17:08:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BA=BF=E7=A8=8B=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E7=9A=84map?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/core/map/MapUtil.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java index cf3e382c1..53e6cbdea 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java @@ -14,6 +14,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; +import java.util.concurrent.ConcurrentHashMap; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; @@ -939,4 +940,43 @@ public class MapUtil { return map; } + + /** + * 新建一个初始容量为{@link MapUtil#DEFAULT_INITIAL_CAPACITY} 的ConcurrentHashMap + * + * @param key的类型 + * @param value的类型 + * @return ConcurrentHashMap + */ + public static ConcurrentHashMap newConcurrentHashMap() { + return new ConcurrentHashMap<>(DEFAULT_INITIAL_CAPACITY); + } + + /** + * 新建一个ConcurrentHashMap + * + * @param size 初始容量,当传入的容量小于等于0时,容量为{@link MapUtil#DEFAULT_INITIAL_CAPACITY} + * @param key的类型 + * @param value的类型 + * @return ConcurrentHashMap + */ + public static ConcurrentHashMap newConcurrentHashMapWithSize(int size) { + size = size <= 0 ? DEFAULT_INITIAL_CAPACITY : size; + return new ConcurrentHashMap<>(size); + } + + /** + * 传入一个Map将其转化为ConcurrentHashMap类型 + * + * @param map map + * @param key的类型 + * @param value的类型 + * @return ConcurrentHashMap + */ + public static ConcurrentHashMap newConcurrentHashMap(Map map) { + if(isEmpty(map)) { + return new ConcurrentHashMap<>(DEFAULT_INITIAL_CAPACITY); + } + return new ConcurrentHashMap<>(map); + } }