Class TreeBag<E>

java.lang.Object
org.apache.commons.collections4.bag.AbstractMapBag<E>
org.apache.commons.collections4.bag.TreeBag<E>
Type Parameters:
E - the type of elements in this bag
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>, Bag<E>, SortedBag<E>

public class TreeBag<E> extends AbstractMapBag<E> implements SortedBag<E>, 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:
  • Constructor Details

    • TreeBag

      public TreeBag()
      Constructs an empty TreeBag.
    • TreeBag

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

      public TreeBag(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(Iterable<? extends E> iterable)
      Constructs a bag containing all the members of the given Iterable.
      Parameters:
      iterable - an iterable to copy into this bag.
      Since:
      4.5.0-M3
  • Method Details

    • 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 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:
      IllegalArgumentException - if the object to be added does not implement Comparable and the TreeBag is using natural ordering
      NullPointerException - if the specified key is null and this bag uses natural ordering, or its comparator does not permit null keys
    • comparator

      public 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
    • 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
    • getMap

      Description copied from class: AbstractMapBag
      Utility method for implementations to access the map that backs this bag. Not intended for interactive use outside of subclasses.
      Overrides:
      getMap in class AbstractMapBag<E>
      Returns:
      the map being used by the 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