Added Approach 5: Specify search criteria code with a Lambda expression.  Approach 6: Specify search criteria using standard functional interfaces with Lambda expressions.  Approach 7: Specifiy search criteria using Predicate, Function and Consumer parameters.