Examples and Solutions for Thinking in Java