Package algs13
Class ResizingArrayBag<Item>
java.lang.Object
algs13.ResizingArrayBag<Item>
- All Implemented Interfaces:
Iterable<Item>
The
ResizingArrayBag
class represents a bag (or multiset) of
generic items. It supports insertion and iterating over the
items in arbitrary order.
This implementation uses a resizing array.
See
for a version that uses a singly linked list.
The add operation takes constant amortized time; the
isEmpty, and size operations
take constant time. Iteration takes time proportional to the number of items.
invalid reference
LinkedBag
For additional documentation, see Section 1.3 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the item to this bag.boolean
isEmpty()
Is this bag empty?iterator()
Returns an iterator that iterates over the items in the bag in arbitrary order.static void
Unit tests theResizingArrayBag
data type.private void
resize
(int capacity) int
size()
Returns the number of items in this bag.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
INIT_CAPACITY
- See Also:
-
a
-
n
-
-
Constructor Details
-
ResizingArrayBag
public ResizingArrayBag()Initializes an empty bag.
-
-
Method Details
-
isEmpty
Is this bag empty?- Returns:
- true if this bag is empty; false otherwise
-
size
Returns the number of items in this bag.- Returns:
- the number of items in this bag
-
resize
-
add
Adds the item to this bag.- Parameters:
item
- the item to add to this bag
-
iterator
Returns an iterator that iterates over the items in the bag in arbitrary order. -
main
Unit tests theResizingArrayBag
data type.- Parameters:
args
- the command-line arguments
-