Re: [List handling][Resolved]number of occurences
Daniel Moyne wrote:
here is what I did :
This is not a complete example. You should provide a complete SSCCE.
We keep asking you to provide an SSCCE. Is there a reason why you don't?
"Simple Self-Contained Correct (compilable) Example".
The canonical way to explain a problem and get good help.
<http://www.physci.org/codes/sscce.html>
<http://mindprod.com/jgloss/sscce.html>
Onward:
private static Map<String,Integer>my_firstJurisdiction= new HashMap<String,
Integer>();
Sun recommends a naming convention without underscores, capitalizing the first
letter of each word part except the first, and you should consider judicious
use of whitespace to make your listings readable:
private static Map <String,Integer> myFirstJurisdiction = ...
Also, consider making this an instance variable instead of a class variable.
Mutable static references are fraught with peril.
............
/* we start with empty map */
my_firstJurisdiction.clear();
Since you don't show the whole example, it is unclear why this is needed, or
indeed, in what method it occurs.
............
/* we feed the map structure */
/* we do not care for any order during this procedure */
if (!my_firstJurisdiction.containsKey(firstJurisdiction)) {
my_firstJurisdiction.put(firstJurisdiction,1);
}
You've already received good advice about this idiom.
else {
my_firstJurisdiction.put(firstJurisdiction,my_firstJurisdiction.get(firstJurisdiction)+1);
}
Whitespace, anyone? Indentation (with spaces, not TABs)?
/* we sort the map with the alphabetical order of the key */
my_firstJurisdiction=new TreeMap<String, Integer>(my_firstJurisdiction);
/* we list result of search */
/* we cannot iterate directly a TreeMap :we go with a Set */
for (Iterator it=my_firstJurisdiction.entrySet().iterator(); it.hasNext(); )
{
Map.Entry entry = (Map.Entry)it.next();
println("S= "+entry.getKey().toString()+"
V= "+entry.getValue().toString()}));
println() is not a standalone method, therefore this usage implies that you
have defined a println() method in your class. Did you?
(Hint: Java doesn't have standalone methods.)
}
This last section is a little strange as you can only extract Object from
the set such as :
Object key=entry.getKey();
Object value=entry.getValue();
So though initially key was typed as a String and value as an integer.
You failed to use generics throughout. You don't need the cast with generics.
for ( Map.Entry <String, Integer> entry : myFirstJurisdiction.entrySet() )
{
String key = entry.getKey();
Integer value = entry.getValue();
log( "Entry: { \""+ key +"\", "+ value +" }" );
doOtherStuff( key, value );
}
--
Lew