Class TreeBag<E>

  • Type Parameters:
    E - the type of elements in this bag
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<E>, java.util.Collection<E>, Bag<E>, SortedBag<E>

    public class TreeBag<E>
    extends AbstractMapBag<E>
    implements SortedBag<E>, java.io.Serializable
    Implements SortedBag, using a TreeMap to provide the data storage. This is the standard implementation of a sorted bag.

    Order will be maintained among the bag members and can be viewed through the iterator.

    A Bag stores each object in the collection together with a count of occurrences. Extra methods on the interface allow multiple copies of an object to be added or removed at once. It is important to read the interface javadoc carefully as several methods violate the Collection interface specification.

    Since:
    3.0 (previously in main package v2.0)
    See Also:
    Serialized Form
    • Constructor Detail

      • TreeBag

        public TreeBag()
        Constructs an empty TreeBag.
      • TreeBag

        public TreeBag​(java.util.Comparator<? super E> comparator)
        Constructs an empty bag that maintains order on its unique representative members according to the given Comparator.
        Parameters:
        comparator - the comparator to use
      • TreeBag

        public TreeBag​(java.util.Collection<? extends E> coll)
        Constructs a TreeBag containing all the members of the specified collection.
        Parameters:
        coll - the collection to copy into the bag
    • Method Detail

      • add

        public boolean add​(E object)
        Adds a new element to the bag, incrementing its count in the underlying map.
        Specified by:
        add in interface Bag<E>
        Specified by:
        add in interface java.util.Collection<E>
        Overrides:
        add in class AbstractMapBag<E>
        Parameters:
        object - the object to add
        Returns:
        true if the object was not already in the uniqueSet
        Throws:
        java.lang.IllegalArgumentException - if the object to be added does not implement Comparable and the TreeBag is using natural ordering
        java.lang.NullPointerException - if the specified key is null and this bag uses natural ordering, or its comparator does not permit null keys
      • first

        public E first()
        Description copied from interface: SortedBag
        Returns the first (lowest) member.
        Specified by:
        first in interface SortedBag<E>
        Returns:
        the first element in the sorted bag
      • last

        public E last()
        Description copied from interface: SortedBag
        Returns the last (highest) member.
        Specified by:
        last in interface SortedBag<E>
        Returns:
        the last element in the sorted bag
      • comparator

        public java.util.Comparator<? super E> comparator()
        Description copied from interface: SortedBag
        Returns the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
        Specified by:
        comparator in interface SortedBag<E>
        Returns:
        the comparator in use, or null if natural ordering