Developers know and love data structures. Applications are often full of maps, trees, heaps, queues and much more. And we rarely bother to look under the hood to understand the tradeoffs between each of the data structures.
We'll briefly discuss what makes data structures persistent, and why making persistent data structures perform well is a challenging task to do well. You'll understand what amortized performance is, and how lazy evaluation can turn the tables on performance, making persistent data structures fast again.
We'll look at several purely functional data structures implemented in Java 8 and will discuss why are they efficient and when you maybe want to prefer these to the data structure built-in into the JDK. By attending this session you'll feel more comfortable with functional data structures and will be more likely to succeed using functional programming for problems that involve data crunching in future.