From b5bc213a631a2325716220f939f7e9a8f0a7c2ee Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 7 Feb 2024 11:26:37 +0800 Subject: [PATCH] add methods --- .../org/dromara/hutool/core/map/MapUtil.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapUtil.java index 9aaad08bc..9b934caa5 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapUtil.java @@ -1346,4 +1346,32 @@ public class MapUtil extends MapGetUtil { } return value; } + + /** + * 将一个Map按照固定大小拆分成多个子Map + * + * @param 键类型 + * @param 值类型 + * @param map Map + * @param size 子Map的大小 + * @return 子Map列表 + * @since 5.8.26 + */ + public static List> partition(final Map map, final int size) { + Assert.notNull(map); + if (size <= 0) { + throw new IllegalArgumentException("Size must be greater than 0"); + } + final List> list = new ArrayList<>(); + final Iterator> iterator = map.entrySet().iterator(); + while (iterator.hasNext()) { + final Map subMap = new HashMap<>(size); + for (int i = 0; i < size && iterator.hasNext(); i++) { + final Map.Entry entry = iterator.next(); + subMap.put(entry.getKey(), entry.getValue()); + } + list.add(subMap); + } + return list; + } }