Какие главные отличия между Predicate, Supplier и Consumer в Java 8, и чем их функциональные интерфейсы отличаются по входным параметрам и типам возврата? — ДейлиПреп