summaryrefslogtreecommitdiff
path: root/sources/scala/collection/immutable/ListSet.scala
diff options
context:
space:
mode:
authorstenman <stenman@epfl.ch>2003-12-09 14:25:53 +0000
committerstenman <stenman@epfl.ch>2003-12-09 14:25:53 +0000
commitfa15a3d86678031567fd8d1cce2e73628f4d24ac (patch)
tree37924f95a9c6f5068e342c8e6488a1b06555f748 /sources/scala/collection/immutable/ListSet.scala
parente6ed073577c6c03cb91eff97e684d9057bf5e169 (diff)
downloadscala-fa15a3d86678031567fd8d1cce2e73628f4d24ac.tar.gz
scala-fa15a3d86678031567fd8d1cce2e73628f4d24ac.tar.bz2
scala-fa15a3d86678031567fd8d1cce2e73628f4d24ac.zip
More comments and cleanups.
Diffstat (limited to 'sources/scala/collection/immutable/ListSet.scala')
-rw-r--r--sources/scala/collection/immutable/ListSet.scala69
1 files changed, 60 insertions, 9 deletions
diff --git a/sources/scala/collection/immutable/ListSet.scala b/sources/scala/collection/immutable/ListSet.scala
index fa3582e31f..dd89906cec 100644
--- a/sources/scala/collection/immutable/ListSet.scala
+++ b/sources/scala/collection/immutable/ListSet.scala
@@ -24,18 +24,44 @@ object ListSet {
*/
class ListSet[A] with Set[A] {
+ /** Returns the number of elements in this set.
+ *
+ * @return number of set elements.
+ */
def size: Int = 0;
+ /** Checks if this set contains element <code>elem</code>.
+ *
+ * @param elem the element to check for membership.
+ * @return true, iff <code>elem</code> is contained in this set.
+ */
def contains(elem: A): Boolean = false;
+ /** This method creates a new set with an additional element.
+ */
def +(elem: A): ListSet[A] = new Node(elem);
+ /** <code>-</code> can be used to remove a single element from
+ * a set.
+ */
def -(elem: A): ListSet[A] = this;
+ /** Creates a new iterator over all elements contained in this
+ * object.
+ *
+ * @return the new iterator
+ */
def elements: Iterator[A] = toList.elements;
+ /** Transform this set into a list of all elements.
+ *
+ * @return a list which enumerates all elements of this set.
+ */
override def toList: List[A] = Nil;
+ /** Compares two sets for equality.
+ * Two set are equal iff they contain the same elements.
+ */
override def equals(obj: Any): Boolean =
if (obj.isInstanceOf[scala.collection.Set[A]]) {
val that = obj.asInstanceOf[scala.collection.Set[A]];
@@ -46,14 +72,39 @@ class ListSet[A] with Set[A] {
override def hashCode(): Int = 0;
protected class Node(elem: A) extends ListSet[A] {
- override def size = ListSet.this.size + 1;
- override def isEmpty: Boolean = false;
- override def contains(e: A) = (e == elem) || ListSet.this.contains(e);
- override def +(e: A): ListSet[A] = if (contains(e)) this else new Node(e);
- override def -(e: A): ListSet[A] = if (e == elem) ListSet.this else {
- val tail = ListSet.this - e; new tail.Node(elem)
- }
- override def toList: List[A] = elem :: ListSet.this.toList;
- override def hashCode(): Int = elem.hashCode() + ListSet.this.hashCode();
+ /** Returns the number of elements in this set.
+ *
+ * @return number of set elements.
+ */
+ override def size = ListSet.this.size + 1;
+ /** Checks if this set is empty.
+ *
+ * @return true, iff there is no element in the set.
+ */
+ override def isEmpty: Boolean = false;
+
+ /** Checks if this set contains element <code>elem</code>.
+ *
+ * @param elem the element to check for membership.
+ * @return true, iff <code>elem</code> is contained in this set.
+ */
+ override def contains(e: A) = (e == elem) || ListSet.this.contains(e);
+
+ /** This method creates a new set with an additional element.
+ */
+ override def +(e: A): ListSet[A] = if (contains(e)) this else new Node(e);
+ /** <code>-</code> can be used to remove a single element from
+ * a set.
+ */
+ override def -(e: A): ListSet[A] = if (e == elem) ListSet.this else {
+ val tail = ListSet.this - e; new tail.Node(elem)
+ }
+
+ /** Transform this set into a list of all elements.
+ *
+ * @return a list which enumerates all elements of this set.
+ */
+ override def toList: List[A] = elem :: ListSet.this.toList;
+ override def hashCode(): Int = elem.hashCode() + ListSet.this.hashCode();
}
}