org.apache.commons.collections4.bag

## 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:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.commons.collections4.bag.AbstractMapBag

      `AbstractMapBag.MutableInteger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TreeBag()` Constructs an empty `TreeBag`.
    `TreeBag(Collection<? extends E> coll)` Constructs a `TreeBag` containing all the members of the specified collection.
    `TreeBag(Comparator<? super E> comparator)` Constructs an empty bag that maintains order on its unique representative members according to the given `Comparator`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(E object)` Adds a new element to the bag, incrementing its count in the underlying map.
    `Comparator<? super E>` | `comparator()` Returns the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
    `E` | `first()` Returns the first (lowest) member.
    `protected SortedMap<E,AbstractMapBag.MutableInteger>` | `getMap()` Utility method for implementations to access the map that backs this bag.
    `E` | `last()` Returns the last (highest) member.

    - ### Methods inherited from class org.apache.commons.collections4.bag.AbstractMapBag

      `add, addAll, clear, contains, containsAll, doReadObject, doWriteObject, equals, getCount, hashCode, isEmpty, iterator, remove, remove, removeAll, retainAll, size, toArray, toArray, toString, uniqueSet`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.collections4.Bag

      `add, containsAll, getCount, iterator, remove, remove, removeAll, retainAll, size, uniqueSet`

    - ### Methods inherited from interface java.util.Collection

      `addAll, clear, contains, equals, hashCode, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArray`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Constructor Detail

    - #### TreeBag

          public TreeBag()

      Constructs an empty `TreeBag`.

    - #### 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(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 `Collection<E>`
      Specified by:
        `add` in interface `Bag<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

    - #### 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 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

    - #### getMap

          protected SortedMap<E,AbstractMapBag.MutableInteger> 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

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.