Class PartitionIterator<T>

java.lang.Object
org.miaixz.bus.core.center.iterator.PartitionIterator<T>
Type Parameters:
T - 字段类型
All Implemented Interfaces:
Serializable, Iterable<List<T>>, Iterator<List<T>>, IterableIterator<List<T>>

public class PartitionIterator<T> extends Object implements IterableIterator<List<T>>, Serializable
分批迭代工具,可以分批处理数据
  1. 比如调用其他客户的接口,传入的入参有限,需要分批
  2. 比如mysql/oracle用in语句查询,超过1000可以分批
  3. 比如数据库取出游标,可以把游标里的数据一批一批处理
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

    • iterator

      protected final Iterator<T> iterator
      被分批的迭代器
    • partitionSize

      protected final int partitionSize
      实际每批大小
  • Constructor Details

    • PartitionIterator

      public PartitionIterator(Iterator<T> iterator, int partitionSize)
      创建分组对象
      Parameters:
      iterator - 迭代器
      partitionSize - 每批大小,最后一批不满一批算一批
      Throws:
      IllegalArgumentException - 当partitionSize小于等于0,或iteratornull时抛出
  • Method Details