net.sf.saxon.expr.sort
Class IntArraySet

java.lang.Object
  extended by net.sf.saxon.expr.sort.AbstractIntSet
      extended by net.sf.saxon.expr.sort.IntArraySet
All Implemented Interfaces:
Serializable, IntSet

public class IntArraySet
extends AbstractIntSet
implements Serializable, IntSet

Set of int values. This class is modelled on the java.net.Set interface, but it does not implement this interface, because the set members are int's rather than Objects.

This implementation of a set of integers is optimized to use very little storage and to provide fast comparison of two sets. The equals() method determines whether two sets contain the same integers.

This implementation is not efficient at adding new integers to the set. It creates a new array each time you do that.

Not thread safe.

Author:
Michael Kay
See Also:
Serialized Form

Field Summary
static int[] EMPTY_INT_ARRAY
           
 
Constructor Summary
IntArraySet()
          Create an empty set
IntArraySet(IntArraySet input)
          Create one IntArraySet as a copy of another
IntArraySet(IntHashSet input)
          Create a set containing integers from the specified IntHashSet
 
Method Summary
 boolean add(int value)
          Add an integer to the set
 void clear()
          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
 IntSet copy()
          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 getFirst()
          Get the first value in the set.
 int[] getValues()
          Get the set of integer values as an array
 int hashCode()
          Construct a hash key that supports the equals() test
 boolean isEmpty()
          Determine if the set is empty
 IntIterator iterator()
          Get an iterator over the values
static IntArraySet make(int[] in, int size)
          Factory method to construct a set from an array of integers
 IntSet mutableCopy()
          Create a copy of this IntSet that contains the same set of integers.
 boolean remove(int value)
          Remove an integer from the set
 int size()
          Get the number of integers in the set
 String toString()
           
 IntSet union(IntSet other)
          Form a new set that is the union of this set with another set.
 
Methods inherited from class net.sf.saxon.expr.sort.AbstractIntSet
containsAll, except, intersect
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.saxon.expr.sort.IntSet
containsAll, except, intersect
 

Field Detail

EMPTY_INT_ARRAY

public static final int[] EMPTY_INT_ARRAY
Constructor Detail

IntArraySet

public IntArraySet()
Create an empty set


IntArraySet

public IntArraySet(IntHashSet input)
Create a set containing integers from the specified IntHashSet

Parameters:
input - the set to be copied

IntArraySet

public IntArraySet(IntArraySet input)
Create one IntArraySet as a copy of another

Parameters:
input - the set to be copied
Method Detail

copy

public IntSet copy()
Description copied from interface: IntSet
Create a copy of this IntSet that leaves the original unchanged.

Specified by:
copy in interface 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 interface: IntSet
Create a copy of this IntSet that contains the same set of integers.

Specified by:
mutableCopy in interface 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

clear

public void clear()
Description copied from interface: IntSet
Clear the contents of the IntSet (making it an empty set)

Specified by:
clear in interface IntSet

size

public int size()
Description copied from interface: IntSet
Get the number of integers in the set

Specified by:
size in interface IntSet
Returns:
the size of the set

isEmpty

public boolean isEmpty()
Description copied from interface: IntSet
Determine if the set is empty

Specified by:
isEmpty in interface IntSet
Returns:
true if the set is empty, false if not

getValues

public int[] getValues()
Get the set of integer values as an array

Returns:
a sorted array of integers

contains

public boolean contains(int value)
Description copied from interface: IntSet
Determine whether a particular integer is present in the set

Specified by:
contains in interface 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 interface: IntSet
Remove an integer from the set

Specified by:
remove in interface 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 interface IntSet
Parameters:
value - the integer to be added
Returns:
true if the integer was added, false if it was already present

getFirst

public int getFirst()
Get the first value in the set.

Returns:
the first value in the set, in sorted order
Throws:
ArrayIndexOutOfBoundsException - if the set is empty

iterator

public IntIterator iterator()
Get an iterator over the values

Specified by:
iterator in interface IntSet
Returns:
an iterator over the values, which will be delivered in sorted order

union

public IntSet union(IntSet other)
Form a new set that is the union of this set with another set.

Specified by:
union in interface IntSet
Overrides:
union in class AbstractIntSet
Parameters:
other - the other set
Returns:
the union of the two sets

make

public static IntArraySet make(int[] in,
                               int size)
Factory method to construct a set from an array of integers

Parameters:
in - the array of integers, which must be in ascending order
size - the number of elements in the array that are significant
Returns:
the constructed 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

Overrides:
equals in class Object

hashCode

public int hashCode()
Construct a hash key that supports the equals() test

Overrides:
hashCode in class Object


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.