Functional Programming in Java: Harnessing the Power Of Java 8 Lambda Expressions