Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Design Patterns and Best Practices in Java

You're reading from   Design Patterns and Best Practices in Java A comprehensive guide to building smart and reusable code in Java

Arrow left icon
Product type Paperback
Published in Jun 2018
Publisher Packt
ISBN-13 9781786463593
Length 280 pages
Edition 1st Edition
Languages
Arrow right icon
Authors (3):
Arrow left icon
Kamalmeet Singh Kamalmeet Singh
Author Profile Icon Kamalmeet Singh
Kamalmeet Singh
Lucian-Paul Torje Lucian-Paul Torje
Author Profile Icon Lucian-Paul Torje
Lucian-Paul Torje
Adrian Ianculescu Adrian Ianculescu
Author Profile Icon Adrian Ianculescu
Adrian Ianculescu
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Title Page
Packt Upsell
Contributors
Preface
1. From Object-Oriented to Functional Programming FREE CHAPTER 2. Creational Patterns 3. Behavioral Patterns 4. Structural Patterns 5. Functional Patterns 6. Let's Get Reactive 7. Reactive Design Patterns 8. Trends in Application Architecture 9. Best Practices in Java 1. Other Books You May Enjoy Index

Introducing functional programming in Java


Functional programming is based on Streams and Lambda expressions, both introduced in Java 8. Libraries such as Retrolambda allow Java 8 code to run on older JVM runtimes, such as Java 5,6, or 7 (typically used for Android development).

Lambda expressions

Lambda expressions are syntax sugar for the use of the java.util.functions package interfaces. The most important ones are the following:

  • BiConsumer<T,U>: An operation that consumes two input arguments and returns no result, usually used in the maps forEach method. It has support for chaining BiConsumers by using the andThen method.
  • BiFunction<T,U,R>: A function that accepts two arguments and produces a result, used by calling its apply method.
  • BinaryOperator<T>: An operation upon two operands of the same type, producing a result of the same type as the operands, used by calling its inherited apply method. It statically offers the minBy and maxBy methods, which return the lesser/greater...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime
Banner background image