There are large number of texts on data structures, and libraries of data structures code. I understand that purely functional data structure is easier to reason about. Howe
Purely functional (aka persistent or immutable) data structures give you several advantages:
cons (pair of value and reference-to-next-element) and connect it to the previous list. In Java you have to create completely new list not to damage the previous one.There's much more advantages, in general, it is another way of modeling the real world. This and some other chapters from SICP will give you more accurate view of programming with immutable structures, its advantages and disadvantages.