diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java b/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java index fa555b974..364af5c53 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java @@ -26,13 +26,14 @@ public class Partition extends AbstractList> { */ public Partition(List list, int size) { this.list = list; - this.size = Math.min(size, list.size()); + this.size = size; } @Override public List get(int index) { - int start = index * size; - int end = Math.min(start + size, list.size()); + int listSize = list.size(); + int start = Math.min(index * size, listSize); + int end = Math.min(start + size, listSize); return list.subList(start, end); } @@ -41,10 +42,7 @@ public class Partition extends AbstractList> { // 此处采用动态计算,以应对list变 final int size = this.size; final int total = list.size(); - int length = total / size; - if(total % size > 0){ - length += 1; - } + int length = (total + size - 1) / size; return length; }