Class HashBag<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>

    public class HashBag<E>
    extends AbstractMapBag<E>
    implements java.io.Serializable
    Implements Bag, using a HashMap to provide the data storage. This is the standard implementation of a bag.

    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
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Serial version lock
        See Also:
        Constant Field Values
    • Constructor Detail

      • HashBag

        public HashBag()
        Constructs an empty HashBag.
      • HashBag

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

      • writeObject

        private void writeObject​(java.io.ObjectOutputStream out)
                          throws java.io.IOException
        Write the bag out using a custom routine.
        Parameters:
        out - the output stream
        Throws:
        java.io.IOException - if an error occurs while writing to the stream
      • readObject

        private void readObject​(java.io.ObjectInputStream in)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Read the bag in using a custom routine.
        Parameters:
        in - the input stream
        Throws:
        java.io.IOException - if an error occurs while reading from the stream
        java.lang.ClassNotFoundException - if an object read from the stream can not be loaded