Data Structures and the Java Collections Framework