/hxSet

simple haxe set class

Primary LanguageHaxeBSD 2-Clause "Simplified" LicenseBSD-2-Clause

hxSet
-----

This is a simple 'set' class.  It supports basic set operations.  It is implemented with a list.

length
        property that tells the number of items in the set

new()
        create an empty set

add(item :T, ?cmp :T->T->Bool) :Bool
        add an item to the set
        returns true if it was added

remove(pred :T->Bool) :Int
       remove items from the set that are selected by the given predicate
       returns the number of items removed

has(item :T, ?cmp :T->T->Bool)
        returns true if the given item is in the set

isEmpty()
        returns true if the set is empty

union(otherItems :Iterable<T>, ?cmp :T->T->Bool) :Int
        add the items from the given iterable to the set
        returns the number of items added

intersection(otherItems :Iterable<T>, ?cmp :T->T->Bool) :Int
        remove items which are not in the given iterable
        returns the number of items removed

minus(otherItems :Iterable<T>, ?cmp :T->T->Bool) :Int
        remove items what are in given iterable
        return the number of items removed

equals(otherSet :Set<T>, ?cmp :T->T->Bool) :Bool
        check if sets are equal (made up of the same items).  pass in a cmp function to override item comparison. O(n^2).
        return true if both sets contain the same (or equivalent if cmp is provided) items

clear()
        empty the set

iterator()
        iterate over items in the set.  order will be filo.