Advertisement
Guest User

intern vs map

a guest
Sep 1st, 2011
795
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.46 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. import java.util.zip.GZIPInputStream;
  4.  
  5. public class Test
  6. {
  7.     public static void main(String[] args) throws FileNotFoundException, IOException
  8.     {
  9.         int N = 1000 * 1000;       
  10.         BufferedReader reader;
  11.         long time;
  12.        
  13.        
  14.         // The intern() version
  15.        
  16.         reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("google-ngrams.fr.gz"))));
  17.         time = System.currentTimeMillis();
  18.        
  19.         for (int n = 0; n < N; n++)
  20.         {
  21.             String line = reader.readLine();
  22.             String[] words = line.split("\t")[0].split(" ");
  23.             for (int i = 0; i < words.length; i++)
  24.                 words[i] = words[i].intern();
  25.         }
  26.        
  27.         reader.close();
  28.         System.out.println("Elapsed time: " + (System.currentTimeMillis() - time)/1000 + " seconds");
  29.        
  30.         // The map version
  31.        
  32.         Map<String, String> map = new HashMap<String, String>();
  33.        
  34.         reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("google-ngrams.fr.gz"))));
  35.         time = System.currentTimeMillis();
  36.        
  37.         for (int n = 0; n < N; n++)
  38.         {
  39.             String line = reader.readLine();
  40.             String[] words = line.split("\t")[0].split(" ");
  41.             for (int i = 0; i < words.length; i++)
  42.             {
  43.                 String interned = map.get(words[i]);
  44.                 if (interned != null)
  45.                     words[i] = interned;
  46.                 else
  47.                     map.put(words[i], words[i]);
  48.             }
  49.         }
  50.         reader.close();
  51.         System.out.println("Elapsed time: " + (System.currentTimeMillis() - time)/1000 + " seconds");
  52.     }
  53.  
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement