net.sf.saxon.sort
Class IntArraySet

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

public class IntArraySet
extends Object
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
 boolean containsAll(IntSet other)
          Test if this set is a superset of another set
 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
 boolean remove(int value)
          Remove an integer from the set
 int size()
          Get the number of integers in the set
 String toString()
           
 IntArraySet union(IntArraySet other)
          Form a new set that is the union of this set with another set.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

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

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 IntArraySet union(IntArraySet other)
Form a new set that is the union of this set with another set.

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

containsAll

public boolean containsAll(IntSet other)
Test if this set is a superset of another set

Specified by:
containsAll in interface IntSet


Copyright (C) Michael H. Kay. All rights reserved.