From f608d7de247bac0cf04c4bd9ea1966e9588cf405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=A8=E6=99=A8?= <2050365570a@gmail.com> Date: Sun, 4 Feb 2024 09:11:13 +0000 Subject: [PATCH] =?UTF-8?q?MapUtil=E6=B7=BB=E5=8A=A0=E6=8C=89=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=E5=A4=A7=E5=B0=8F=E5=88=92=E5=88=86Map=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 晨晨 <2050365570a@gmail.com> --- .../main/java/cn/hutool/core/map/MapUtil.java | 26 +++++++++++++++++++ 1 file changed, 26 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 62aa933ee..f6c9b7e64 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java @@ -1519,4 +1519,30 @@ public class MapUtil { } return value; } + + /** + * 将一个Map按照固定大小拆分成多个子Map + * + * @param map Map + * @param size 子Map的大小 + * @return 子Map列表 + */ + public static List> partition(Map map, int size) { + if (map == null) { + throw new NullPointerException("Map must not be null"); + } else if (size <= 0) { + throw new IllegalArgumentException("Size must be greater than 0"); + } + List> list = new ArrayList<>(); + Iterator> iterator = map.entrySet().iterator(); + while (iterator.hasNext()) { + Map subMap = new HashMap<>(size); + for (int i = 0; i < size && iterator.hasNext(); i++) { + Map.Entry entry = iterator.next(); + subMap.put(entry.getKey(), entry.getValue()); + } + list.add(subMap); + } + return list; + } }