Class IntRangeSet

java.lang.Object
net.sf.saxon.z.IntSet
net.sf.saxon.z.IntRangeSet

public class IntRangeSet extends IntSet
Set of int values. This implementation of IntSet uses a sorted array of integer ranges.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create an empty set
    IntRangeSet(int[] startPoints, int[] endPoints)
    Create an IntRangeSet given the start points and end points of the integer ranges.
    Create one IntRangeSet as a copy of another
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(int value)
    Add an integer to the set
    void
    addRange(int low, int high)
    Add a range of integers to the set.
    void
    Clear the contents of the IntSet (making it an empty set)
    boolean
    contains(int value)
    Determine whether a particular integer is present in the set
    Create a copy of this IntSet that leaves the original unchanged.
    boolean
    equals(Object other)
    Test whether this set has exactly the same members as another set.
    int[]
    Get the end points of the ranges
    int
    Get the number of ranges actually in use
    int[]
    Get the start points of the ranges
    int
    Construct a hash key that supports the equals() test
    boolean
    Determine if the set is empty
    boolean
    Ask whether the set permits in-situ modifications using add() and remove()
    Get an iterator over the values
    Create a copy of this IntSet that contains the same set of integers.
    boolean
    remove(int value)
    Remove an integer from the set
    int
    Get the number of integers in the set
     

    Methods inherited from class net.sf.saxon.z.IntSet

    containsAll, except, intersect, union

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • IntRangeSet

      public IntRangeSet()
      Create an empty set
    • IntRangeSet

      public IntRangeSet(IntRangeSet input)
      Create one IntRangeSet as a copy of another
      Parameters:
      input - the IntRangeSet to be copied
    • IntRangeSet

      public IntRangeSet(int[] startPoints, int[] endPoints)
      Create an IntRangeSet given the start points and end points of the integer ranges. The two arrays must be the same length; each must be in ascending order; and the n'th end point must be greater than the n'th start point, and less than the n+1'th start point, for all n.
      Parameters:
      startPoints - the start points of the integer ranges
      endPoints - the end points of the integer ranges
      Throws:
      IllegalArgumentException - if the two arrays are different lengths. Other error conditions in the input are not currently detected.
  • Method Details

    • clear

      public void clear()
      Description copied from class: IntSet
      Clear the contents of the IntSet (making it an empty set)
      Specified by:
      clear in class IntSet
    • copy

      public IntSet copy()
      Description copied from class: IntSet
      Create a copy of this IntSet that leaves the original unchanged.
      Specified by:
      copy in class IntSet
      Returns:
      an IntSet containing the same integers. The result will not necessarily be the same class as the original. It will either be an immutable object, or a newly constructed object.
    • mutableCopy

      public IntSet mutableCopy()
      Description copied from class: IntSet
      Create a copy of this IntSet that contains the same set of integers.
      Specified by:
      mutableCopy in class IntSet
      Returns:
      an IntSet containing the same integers. The result will not necessarily be the same class as the original. It will always be a mutable object
    • isMutable

      public boolean isMutable()
      Description copied from class: IntSet
      Ask whether the set permits in-situ modifications using add() and remove()
      Overrides:
      isMutable in class IntSet
      Returns:
      true if the set permits in-situ modifications
    • size

      public int size()
      Description copied from class: IntSet
      Get the number of integers in the set
      Specified by:
      size in class IntSet
      Returns:
      the size of the set
    • isEmpty

      public boolean isEmpty()
      Description copied from class: IntSet
      Determine if the set is empty
      Specified by:
      isEmpty in class IntSet
      Returns:
      true if the set is empty, false if not
    • contains

      public boolean contains(int value)
      Description copied from class: IntSet
      Determine whether a particular integer is present in the set
      Specified by:
      contains in class IntSet
      Parameters:
      value - the integer under test
      Returns:
      true if value is present in the set, false if not
    • remove

      public boolean remove(int value)
      Description copied from class: IntSet
      Remove an integer from the set
      Specified by:
      remove in class IntSet
      Parameters:
      value - the integer to be removed
      Returns:
      true if the integer was present in the set, false if it was not present
    • add

      public boolean add(int value)
      Add an integer to the set
      Specified by:
      add in class IntSet
      Parameters:
      value - the integer to be added
      Returns:
      true if the integer was added, false if it was already present
    • iterator

      public IntIterator iterator()
      Get an iterator over the values
      Specified by:
      iterator in class IntSet
      Returns:
      an iterator over the integers in the set
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object other)
      Test whether this set has exactly the same members as another set. Note that IntRangeSet values are NOT comparable with other implementations of IntSet
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Construct a hash key that supports the equals() test
      Overrides:
      hashCode in class Object
    • addRange

      public void addRange(int low, int high)
      Add a range of integers to the set. This is optimized for the case where these are all greater than any existing integer in the set.
      Parameters:
      low - the low end of the new range
      high - the high end of the new range
    • getStartPoints

      public int[] getStartPoints()
      Get the start points of the ranges
      Returns:
      the start points
    • getEndPoints

      public int[] getEndPoints()
      Get the end points of the ranges
      Returns:
      the end points
    • getNumberOfRanges

      public int getNumberOfRanges()
      Get the number of ranges actually in use
      Returns:
      the number of ranges