Collections and Generics
Legacy collections
Untype collection
How to use an untyped collection
- Code written before Java 5.0 uses untyped collections, which don't use generics to specify the element type.
- Untyped collections hold elements of type Object.
- No special coding is required to add objects to an untyped collection.
- Typically, you must specify a cast to retrieve objects from an untyped collection.
- The Java 5.0 compiler generates a warning message whenever you add an element to an untyped collection.
Code that stores strings in an untyped array list
// create an untyped array list ArrayList products = new ArrayList(); // add three productss products.add(new Product("dctp", "Duct Tape", 4.95)); products.add(new Product("blwr", "Bailing Wire", 14.95)); products.add(new Product("cgum", "Chewing Gum", 0.95)); // print the array list for (int i = 0; i < products.size(); i++) { Product p = (Product)products.get(i); System.out.println(p.getCode() + "\t" + p.getDescription() + "\t" + p.getFormattedPrice()); }
Resulting output
dctp Duct Tape $4.95 blwr Bailing Wire $14.95 cgum Chewing Gum $0.95
Compiler warnings generated by the code for the untyped array list
H:\Java 1.5\examples\ch10\Untyped Arraylist\UntypedArrayList.java:13: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.ArrayList products.add(new Product("dctp", "Duct Tape", 4.95)); ^ H:\Java 1.5\examples\ch10\Untyped Arraylist\UntypedArrayList.java:14: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.ArrayList products.add(new Product("blwr", "Bailing Wire", 14.95)); ^ H:\Java 1.5\examples\ch10\Untyped Arraylist\UntypedArrayList.java:15: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.ArrayList products.add(new Product("cgum", "Chewing Gum", 0.95)); ^ 3 warnings Tool completed successfully