Strategy for Defining Immutable Objects |
Making your custom Data Structure / Object Iterable so that you can use a for loop to iterate it |
Serializing your Data Structure / Object so that you can send it through network or save to disk |
Making your Data Structure / Object Cloneable |
History and Introduction of Functional Programming in Java |
Mastering Java Streams: Real-Life Examples and Techniques |