Retiring, March 2020 - sorry, you have missed our final public course.
The Coronavirus situation has lead us to suspend public training - which was on the cards anyway, with no plans to resume
Please ask about private 'maintenance' training for Python, Tcl, Perl, PHP, Lua, etc
Happily continuing private consultancy / programming work
Java - Generics
If you're writing a Java program and you want to hold a whole series of objects of a similar type in a single variable, you can use and array ... except that you need to know HOW MANY of them there will be before you create the array.
Using the java.util
package, there are numerous more flexible alternatives - you can used a Vector
if you want an ordered collection, or a HashTable
if you want a keyed (unordered) collection from which you select elements by 'name'.
declare a HashMap (as an example) as follows:
HashMap results = new HashMap();
BUT when you compile your code, you'll get:
[trainee@easterton b2]$ javac Req.java
Note: Req.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
And when you press it a bit, you get:
[trainee@easterton b2]$ javac -Xlint Req.java
What's all this about?
Req.java:19: warning: [unchecked] unchecked call to
put(K,V) as a member of the raw type java.util.HashMap
Vectors, ArrayLists, HashMaps, and HashTables can store any object types, and the Java compiler is worried about typing - that you'll put something into one that you don't mean to, and get a run time error when you pull it out. But from Java 1.5 you can use a generic
which lets you tell the java compiler what types it should accept into the collection - in the case of ArrayList and friends that will be a single type definition, and in the case of a HashMap and friends it will be two types. Here's an example:
HashMap<String,String> results = new HashMap<String,String>();
Result? A clean compile:
[trainee@easterton b2]$ javac Req.java
And also a re-assurance that what comes back out of your collection at runtime is what you expected! (written 2008-11-27)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesJ606 - Java Roadmap - Beyond the Fundamentals 
Learning to program in Java - yes, we can help. - (2014-09-26) 
Gathering information - logging - with log4j. First steps. - (2010-11-12) 
Java Tag Libraries / how they work / Tomcat Deployment - (2009-02-11) 
Java Compiler - needs all classes, compiles them all too - (2008-03-03) 
Java 6, Apache Tomcat 6. - (2007-01-21)J714 - Java - Fundamental classes 
A Java servlet that is also a stand alone program. And a server that is also a web client. - (2015-02-19) 
How healthy are the stars of stage and screen? - (2015-02-09) 
Java Utility class - flexible replacement for array. Also cacheing in objects and multiple catch clauses example. - (2015-01-16) 
Java - factory method, encapsulation, hashmap example - (2014-11-27) 
String handling - from first steps to practical examples - (2010-11-13) 
Sorting - naturally, or into a different order - (2010-08-14) 
for and foreach in Java - (2010-04-22) 
Length, size or capacity in Java? - (2010-02-24) 
Sorting Collections of Objects in Java - (2009-09-25) 
Viv.java uses unchecked or unsafe operations - explanation and cure - (2009-09-24) 
Java Collection Objects in the java.util package - (2009-08-05) 
Java, sorting, ArrayList example, generics - (2008-01-11) 
Java sorting - comparable v comparator - (2007-02-02) 
Do languages change? - (2004-09-08)
Some other Articles
It must be nearly ChristmasAlastair Darling helps make paperwork and confusionBook now for 2009Remember Me - PHPJava - Genericsjavax.servlet cannot be resolved - how to solveJava CLASSPATH explainedMelksham Hotel RatesLong, Longer, Longest in JavaA Gold Star for First Great Western Customer Service
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).