Which of the following statments best describes an ArrayList?

a An ArrayList uses an array internally and whenever the array fills up, it creates a new array of twice the size as the old one.
b An ArrayList is a collection of stores unique objects. It cannot store duplicates.
c An ArrayList is a sequence of node objects that represent a list. Each node stores an array internally.
d An ArrayList is a primitive array that can only store a limited number of objects.