diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/BaseController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/BaseController.java index c9202d4ac6..f42b554791 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/BaseController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/BaseController.java @@ -48,7 +48,7 @@ public class BaseController { * @return check result code */ public Map checkPageParams(int pageNo, int pageSize) { - Map result = new HashMap<>(2); + Map result = new HashMap<>(4); Status resultEnum = Status.SUCCESS; String msg = Status.SUCCESS.getMsg(); if (pageNo <= 0) { @@ -202,7 +202,7 @@ public class BaseController { result.setCode(Status.SUCCESS.getCode()); result.setMsg(Status.SUCCESS.getMsg()); - Map map = new HashMap<>(4); + Map map = new HashMap<>(8); map.put(Constants.TOTAL_LIST, totalList); map.put(Constants.CURRENT_PAGE, currentPage); map.put(Constants.TOTAL_PAGE, totalPage); diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java index ba55a37f81..e90c606b63 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/CollectionUtils.java @@ -46,6 +46,11 @@ public class CollectionUtils { throw new UnsupportedOperationException("Construct CollectionUtils"); } + /** + * The load factor used when none specified in constructor. + */ + static final float DEFAULT_LOAD_FACTOR = 0.75f; + /** * Returns a new {@link Collection} containing a minus a subset of * b. Only the elements of b that satisfy the predicate @@ -95,6 +100,7 @@ public class CollectionUtils { * @return string to map */ public static Map stringToMap(String str, String separator, String keyPrefix) { + Map emptyMap = new HashMap<>(0); if (StringUtils.isEmpty(str)) { return emptyMap; @@ -103,7 +109,8 @@ public class CollectionUtils { return emptyMap; } String[] strings = str.split(separator); - Map map = new HashMap<>(strings.length); + int initialCapacity = (int)(strings.length / DEFAULT_LOAD_FACTOR) + 1; + Map map = new HashMap<>(initialCapacity); for (int i = 0; i < strings.length; i++) { String[] strArray = strings[i].split("="); if (strArray.length != 2) { diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java index fd91e4076d..96209af93c 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java @@ -370,7 +370,7 @@ public class QuartzExecutors { * @return data map */ public static Map buildDataMap(int projectId, int scheduleId, Schedule schedule) { - Map dataMap = new HashMap<>(3); + Map dataMap = new HashMap<>(8); dataMap.put(PROJECT_ID, projectId); dataMap.put(SCHEDULE_ID, scheduleId); dataMap.put(SCHEDULE, JSONUtils.toJsonString(schedule));