Java Generics and Collections: Speed Up the Java Development Process


This comprehensive guide shows you how to master the most importantchanges to Java since it was first released. Generics and the greatlyexpanded collection libraries have tremendously increased the power ofJava 5 and Java 6. But they have also confused many developers whohaven't known how to take advantage of these new features.

Java Generics and Collections covers everything from the mostbasic uses of generics to the strangest corner cases. It teaches youeverything you need to ...

See more details below
$30.78 price
(Save 12%)$34.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (16) from $18.36   
  • New (7) from $21.09   
  • Used (9) from $18.36   
Java Generics and Collections

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$15.49 price
(Save 44%)$27.99 List Price


This comprehensive guide shows you how to master the most importantchanges to Java since it was first released. Generics and the greatlyexpanded collection libraries have tremendously increased the power ofJava 5 and Java 6. But they have also confused many developers whohaven't known how to take advantage of these new features.

Java Generics and Collections covers everything from the mostbasic uses of generics to the strangest corner cases. It teaches youeverything you need to know about the collections libraries, so you'llalways know which collection is appropriate for any given task, andhow to use it.

Topics covered include:

  • Fundamentals of generics: type parameters and generic methods
  • Other new features: boxing and unboxing, foreach loops, varargs
  • Subtyping and wildcards
  • Evolution not revolution: generic libraries with legacy clients andgeneric clients with legacy libraries
  • Generics and reflection
  • Design patterns for generics
  • Sets, Queues, Lists, Maps, and their implementations
  • Concurrent programming and thread safety with collections
  • Performance implications of different collections

Generics and the new collection libraries they inspired take Java to anew level. If you want to take your software development practice toa new level, this book is essential reading.

Philip Wadler is Professor of Theoretical Computer Science at theUniversity of Edinburgh, where his research focuses on the design ofprogramming languages. He is a co-designer of GJ, work thatbecame the basis for generics in Sun's Java 5.0.

Maurice Naftalin is Technical Director at Morningside Light Ltd., a software consultancy in the United Kingdom. He has most recently served as an architect and mentor at NSB Retail Systems plc, and as the leader of the client development team of a major UK government social service system.

"A brilliant exposition of generics. By far the best book on thetopic, it provides a crystal clear tutorial that starts with thebasics and ends leaving the reader with a deep understanding of boththe use and design of generics."
Gilad Bracha, Java Generics Lead, Sun Microsystems

This book, written by one of the designers of generics, is a thorough explanation of how to use generics, and particularly, the effect this facility has on the way developers use collections.

Read More Show Less

Product Details

  • ISBN-13: 9780596527754
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 10/1/2006
  • Edition number: 1
  • Pages: 286
  • Sales rank: 798,484
  • Product dimensions: 7.08 (w) x 9.18 (h) x 0.70 (d)

Meet the Author

Maurice Naftalin is Director of Software Development at Morningside Light Ltd., a software consultancy in the United Kingdom. Maurice consults mainly in object-oriented technologies and teaches Java classes part-time at Learning Tree. He has three decades' experience as a programmer, team leader, and commercial trainer.

Philip Wadler is a professor of theoretical computer science at the University of Edinburgh, Scotland, where his research focuses on functional and logic programming. He co-authored the Generic Java standard that became the basis for generics in Sun's Java 5.0 and also contributed to the XQuery language standard base. Professor Wadler received his Ph.D., in computer science from Carnegie-Mellon University and co-wrote "Introduction to Functional Programming" (Prentice-Hall).

Read More Show Less

Table of Contents

Obtaining the Example Programs;
How to Contact Us;
Conventions Used in This Book;
Using Code Examples;
SafariĀ® Books Online;
Part I: Generics;
Chapter 1: Introduction;
1.1 Generics;
1.2 Boxing and Unboxing;
1.3 Foreach;
1.4 Generic Methods and Varargs;
1.5 Assertions;
Chapter 2: Subtyping and Wildcards;
2.1 Subtyping and the Substitution Principle;
2.2 Wildcards with extends;
2.3 Wildcards with super;
2.4 The Get and Put Principle;
2.5 Arrays;
2.6 Wildcards Versus Type Parameters;
2.7 Wildcard Capture;
2.8 Restrictions on Wildcards;
Chapter 3: Comparison and Bounds;
3.1 Comparable;
3.2 Maximum of a Collection;
3.3 A Fruity Example;
3.4 Comparator;
3.5 Enumerated Types;
3.6 Multiple Bounds;
3.7 Bridges;
3.8 Covariant Overriding;
Chapter 4: Declarations;
4.1 Constructors;
4.2 Static Members;
4.3 Nested Classes;
4.4 How Erasure Works;
Chapter 5: Evolution, Not Revolution;
5.1 Legacy Library with Legacy Client;
5.2 Generic Library with Generic Client;
5.3 Generic Library with Legacy Client;
5.4 Legacy Library with Generic Client;
5.5 Conclusions;
Chapter 6: Reification;
6.1 Reifiable Types;
6.2 Instance Tests and Casts;
6.3 Exception Handling;
6.4 Array Creation;
6.5 The Principle of Truth in Advertising;
6.6 The Principle of Indecent Exposure;
6.7 How to Define ArrayList;
6.8 Array Creation and Varargs;
6.9 Arrays as a Deprecated Type?;
6.10 Summing Up;
Chapter 7: Reflection;
7.1 Generics for Reflection;
7.2 Reflected Types are Reifiable Types;
7.3 Reflection for Primitive Types;
7.4 A Generic Reflection Library;
7.5 Reflection for Generics;
7.6 Reflecting Generic Types;
Chapter 8: Effective Generics;
8.1 Take Care when Calling Legacy Code;
8.2 Use Checked Collections to Enforce Security;
8.3 Specialize to Create Reifiable Types;
8.4 Maintain Binary Compatibility;
Chapter 9: Design Patterns;
9.1 Visitor;
9.2 Interpreter;
9.3 Function;
9.4 Strategy;
9.5 Subject-Observer;
Part II: Collections;
Chapter 10: The Main Interfaces of the Java Collections Framework;
Chapter 11: Preliminaries;
11.1 Iterable and Iterators;
11.2 Implementations;
11.3 Efficiency and the O-Notation;
11.4 Contracts;
11.5 Collections and Thread Safety;
Chapter 12: The Collection Interface;
12.1 Using the Methods of Collection;
12.2 Implementing Collection;
12.3 Collection Constructors;
Chapter 13: Sets;
13.1 Implementing Set;
13.2 SortedSet and NavigableSet;
13.3 Comparing Set Implementations;
Chapter 14: Queues;
14.1 Using the Methods of Queue;
14.2 Implementing Queue;
14.3 BlockingQueue;
14.4 Deque;
14.5 Comparing Queue Implementations;
Chapter 15: Lists;
15.1 Using the Methods of List;
15.2 Implementing List;
15.3 Comparing List Implementations;
Chapter 16: Maps;
16.1 Using the Methods of Map;
16.2 Implementing Map;
16.3 SortedMap and NavigableMap;
16.4 ConcurrentMap;
16.5 ConcurrentNavigableMap;
16.6 Comparing Map Implementations;
Chapter 17: The Collections Class;
17.1 Generic Algorithms;
17.2 Collection Factories;
17.3 Wrappers;
17.4 Other Methods;

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 3 Customer Reviews
  • Anonymous

    Posted December 24, 2006


    Do you wish to process lists? If you do, then this book is for you. Authors Maurice Naftalin and Philip Wadler, have done an outstanding job of writing a book that shows you how to master the most important changes to Java since it was first released. Naftalin and Wadler, begin with an overview of generics and other new features in Java 5. Then, the authors review how subtyping works and explain how wildcards let you use subtyping in connection with generics. Next, they describe how generics works with the Comparable interface, which requires a notion of bounds on type variables. They also look at how generics work with various declarations. The authors continue by explaining how to evolve legacy code to exploit generics. Then, they explain how the same design that leads to ease of evolution also necessarily leads to a few rough edges in the treatment of casts, exceptions and arrays. Next, they explain new features that relate generics and reflection. The authors also give advice on how to use generics effectively in practical coding. They continue by looking at how generics affect well known design patterns. Then, the authors give an overview of the Framework and then look in detail at each of the main interfaces and the standard implementation of them. Finally, the authors look at the special-purpose implementation and generic algorithms provided in the Collections class. This most excellent book covers everything from the most basic uses of generics to the strangest collections cases. Perhaps more importantly, this book shows you everything you need to know about the collections libraries!

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted February 5, 2012

    No text was provided for this review.

  • Anonymous

    Posted October 20, 2010

    No text was provided for this review.

Sort by: Showing all of 3 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)