jasononeil / hxSet

simple haxe set class

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

simple haxe set class

License:BSD 2-Clause "Simplified" License