Re: Algorithm for performing a rollup
Chris <spam_me_not@goaway.com> wrote:
input:
{"A", "A", "A", "B", "B", "C", "D", "D"}
output:
"A", 3
"B", 2
"C", 1
"D", 2
Arne gave the hint with the Map idea. Here's a version of how I would attempt
such a thing:
First off, let's put the Strings into a List so we can go all Collections.
public class Foo
{
public static void main( String [] args )
{
List< String > starters =
Arrays.asList( "A", "A", "A", "B", "B", "C", "D", "D" );
Map< String, Integer > kounts = new HashMap();
for( String key : starters )
{
Integer k = kounts.get( key );
if ( k == null )
{
kounts.put( key, 1 );
}
else
{
kounts.put( key, k + 1 );
}
}
List< String > outters = new ArrayList< String >();
outters.addAll( kounts.keySet() );
Collections.sort( outters );
for ( String key : outters )
{
System.out.println( "\""+ key + "\", "+ kounts.get( key ));
}
}
}
-- Lew