Linear data structures such as static or dynamic arrays are among those few data structures that are most preferred by many programmers. Though an array is linear and static in nature, by tweaking it for ourselves, we can create different types of data structures around arrays. In this chapter, we tweaked the same static array to create a dynamic array (Vector) and an immutable dynamic array (ImmutableList).
Since immutability is playing an important role in modern programming languages such as Kotlin, we cannot just blindly go ahead and use immutable data structures everywhere, as long as we aren't understand the difference between mutability and immutability.
We can implement any immutable data structure in two ways; the easiest way to implement an immutable data structure is to encapsulate the properties inside the class without using any public APIs to modify...