| // $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); |
| } |
| } |
| |