This post will discuss the difference between arrays and collections in Java.

Arrays and Collections in Java are used to store a group of objects of same or different types. This post provides an overview of some of the major differences between arrays and a collection.

⮚ Resizing

An array is a fixed-size data structure that does not permit elements to be inserted or removed after its creation. In contrast, a Collection is resizable and can grow (or shrink) in size dynamically to accommodate more elements if required.

⮚ Performance

Retrieval and assignment operations on an array take constant time. However, an array doesn’t support insertion operation since its length is fixed after creation.

All Collections in Java facilitate the retrieval, assignment, and insertions operations. The time taken by these operations depends on the underlying data structure. But no doubt, arrays offers better performance than Collections.

⮚ Primitives

Arrays in Java can hold primitives data types (int, char, long, float, double, boolean, etc.) and Java objects (Integer, Character, Long, Float, Double, Boolean, String, etc.). In contrast, a Collection can hold primitive Wrapper classes and objects.

⮚ Storage

Arrays take O(n) space for n number of elements and do not reserve any additional storage. In contrast, most of the Collections reserve some additional storage for new elements, and actual space taken by contents depends on the implementation.

⮚ Methods

Arrays in Java does not have any methods, but they do have some properties such as length. In contrast, every Collection offers several utility methods to facilitate operations on its underlining data structure.

⮚ Dimension

The dimension of an array is the total number of indices needed to select an element. Arrays in Java support single-dimensional and multidimensional arrays, whereas a Collection has no concept of dimensions. However, we can easily create nested Collections.

⮚ Generics support

Arrays in Java always store homogeneous data, whereas Collections can store both homogeneous and heterogeneous data. So, generics are not supported by an array, but Collections support generics to ensure type-safety.

⮚ Duplicates and nulls

Arrays in Java allows duplicates and null values, whereas few collections allow duplicate elements and others do not. Also, some implementations prohibit null elements.

⮚ Ordering

Arrays in Java represent an ordered sequence of elements that can easily accessible by index. Collections, on the other hand, can be ordered or unordered, depending on the implementation. If the array is used as an underlying data structure in a Collection, the elements can be accessed using an index.

That’s all about the differences between arrays and Collections in Java.