Java 7 Recipes: A Problem-Solution Approach