net.cscott.jutil

Class PersistentSet<T>

public class PersistentSet<T> extends Object implements Iterable<T>

PersistentSet implements a persistent set, based on a persistent randomized treap. Unlike the Sets returned by PersistentSetFactory, PersistentSet does not implement that standard java.util.Set API but instead exposes the underlying functional operations.

Version: $Id: PersistentSet.java,v 1.8 2006-10-30 19:58:06 cananian Exp $

Author: C. Scott Ananian

Constructor Summary
PersistentSet()
Creates an empty PersistentSet whose member objects will all implement java.lang.Comparable.
PersistentSet(Comparator<T> c)
Creates an empty PersistentSet whose member objects are ordered by the given Comparator.
Method Summary
PersistentSet<T>add(T element)
Creates and returns a new PersistentSet identical to this one, except it contains element.
PersistentSet<T>addAll(PersistentSet<T> set)
Add all the items in the given set to this set.
Set<T>asSet()
java.util.Collections view of the set.
PersistentSet<T>clone()
Cloning takes constant time, regardless of the size of the set.
booleancontains(T element)
Determines if the given element belongs to this set.
booleanisEmpty()
Determines if this PersistentSet has any members.
Iterator<T>iterator()
Unmodifiable iterator.
PersistentSet<T>remove(T element)
Make a new PersistentSet identical to this one, except that it does not contain element.
intsize()
Count the number of elements in this PersistentSet.
StringtoString()
Human-readable representation of the set.

Constructor Detail

PersistentSet

public PersistentSet()
Creates an empty PersistentSet whose member objects will all implement java.lang.Comparable. Note that good hashcode implementations for the member objects are still required.

PersistentSet

public PersistentSet(Comparator<T> c)
Creates an empty PersistentSet whose member objects are ordered by the given Comparator. Note that good hashcode implementations for the member objects are still required.

Method Detail

add

public PersistentSet<T> add(T element)
Creates and returns a new PersistentSet identical to this one, except it contains element.

addAll

public PersistentSet<T> addAll(PersistentSet<T> set)
Add all the items in the given set to this set.

asSet

public Set<T> asSet()
java.util.Collections view of the set.

clone

public PersistentSet<T> clone()
Cloning takes constant time, regardless of the size of the set.

contains

public boolean contains(T element)
Determines if the given element belongs to this set.

isEmpty

public boolean isEmpty()
Determines if this PersistentSet has any members.

iterator

public Iterator<T> iterator()
Unmodifiable iterator.

remove

public PersistentSet<T> remove(T element)
Make a new PersistentSet identical to this one, except that it does not contain element.

size

public int size()
Count the number of elements in this PersistentSet.

toString

public String toString()
Human-readable representation of the set.
Copyright (c) 2006 C. Scott Ananian