net.sf.saxon.sort

Class IntArraySet

Implemented Interfaces:
Serializable, IntSet

public class IntArraySet
extends java.lang.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

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.

Field Details

EMPTY_INT_ARRAY

public static final int[] EMPTY_INT_ARRAY

Constructor Details

IntArraySet

public IntArraySet()
Create an empty set

IntArraySet

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

IntArraySet

public IntArraySet(IntHashSet input)
Create a set containing integers from the specified IntHashSet
Parameters:
input - the set to be copied

Method Details

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

clear

public void clear()
Clear the contents of the IntSet (making it an empty set)
Specified by:
clear in interface IntSet

contains

public boolean contains(int value)
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

containsAll

public boolean containsAll(IntSet other)
Test if this set is a superset of another set
Specified by:
containsAll in interface IntSet

equals

public boolean equals(Object other)
Test whether this set has exactly the same members as another set

getFirst

public int getFirst()
Get the first value in the set.
Returns:
the first value in the set, in sorted order

getValues

public int[] getValues()
Get the set of integer values as an array
Returns:
a sorted array of integers

hashCode

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

isEmpty

public boolean isEmpty()
Determine if the set is empty
Specified by:
isEmpty in interface IntSet
Returns:
true if the set is empty, false if not

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

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

remove

public boolean remove(int value)
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

size

public int size()
Get the number of integers in the set
Specified by:
size in interface IntSet
Returns:
the size of the set

toString

public String toString()

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