blob: dbbe9af335f198e0286e761fc7a145226121c5e0 [file] [log] [blame]
// $Id: hash.java,v 1.1 2004-05-23 05:06:51 bfulgham Exp $
// http://www.bagley.org/~doug/shootout/
// this program is modified from:
// http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
// Timing Trials, or, the Trials of Timing: Experiments with Scripting
// and User-Interface Languages</a> by Brian W. Kernighan and
// Christopher J. Van Wyk.
import java.io.*;
import java.util.*;
public class hash {
public static void main(String args[]) throws IOException {
int n = Integer.parseInt(args[0]);
int i, c;
String s = "";
Integer ii;
// the original program used:
// Hashtable ht = new Hashtable();
// John Olsson points out that Hashtable is for synchronized access
// and we should use instead:
HashMap ht = new HashMap();
c = 0;
for (i = 1; i <= n; i++)
ht.put(Integer.toString(i, 16), new Integer(i));
for (i = 1; i <= n; i++)
// The original code converted to decimal string this way:
// if (ht.containsKey(i+""))
if (ht.containsKey(Integer.toString(i, 10)))
c++;
System.out.println(c);
}
}