Class Range<T>

java.lang.Object
org.miaixz.bus.core.lang.range.Range<T>
Type Parameters:
T - 生成范围对象的类型
All Implemented Interfaces:
Serializable, Iterable<T>, Iterator<T>
Direct Known Subclasses:
Boundary

public class Range<T> extends Object implements Iterable<T>, Iterator<T>, Serializable
范围生成器。根据给定的初始值、结束值和步进生成一个步进列表生成器 由于用户自行实现Stepper来定义步进,因此Range本身无法判定边界(是否达到end),需在step实现边界判定逻辑。

此类使用ReentrantReadWriteLock保证线程安全

Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • Range

      public Range(T start, Stepper<T> stepper)
      构造
      Parameters:
      start - 起始对象(包括)
      stepper - 步进
    • Range

      public Range(T start, T end, Stepper<T> stepper)
      构造
      Parameters:
      start - 起始对象(包含)
      end - 结束对象(包含)
      stepper - 步进
    • Range

      public Range(T start, T end, Stepper<T> stepper, boolean isIncludeStart, boolean isIncludeEnd)
      构造
      Parameters:
      start - 起始对象
      end - 结束对象
      stepper - 步进
      isIncludeStart - 是否包含第一个元素
      isIncludeEnd - 是否包含最后一个元素
  • Method Details

    • disableLock

      public Range<T> disableLock()
      禁用锁,调用此方法后不再使用锁保护
      Returns:
      this
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<T>
    • next

      public T next()
      Specified by:
      next in interface Iterator<T>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<T>
    • iterator

      public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • reset

      public Range<T> reset()
      重置Range
      Returns:
      this