home *** CD-ROM | disk | FTP | other *** search
/ Online Today 2000 January / Onto0100.iso / pc / JAVA / MSJAVX86.EXE / xmldso.cab / com / ms / xml / util / StringHashtable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  1.2 KB  |  84 lines

  1. package com.ms.xml.util;
  2.  
  3. public class StringHashtable {
  4.    Entry[] entries;
  5.  
  6.    public Object put(String var1, Object var2) {
  7.       int var3 = var1.hashCode();
  8.       int var4 = (var3 & Integer.MAX_VALUE) % this.entries.length;
  9.  
  10.       for(Entry var5 = this.entries[var4]; var5 != null; var5 = var5.next) {
  11.          if (var5.hash == var3 && var5.key.equals(var1)) {
  12.             Object var6 = var5.value;
  13.             var5.value = var2;
  14.             return var6;
  15.          }
  16.       }
  17.  
  18.       Entry var7 = new Entry(var1, var2, var3);
  19.       var7.next = this.entries[var4];
  20.       this.entries[var4] = var7;
  21.       return null;
  22.    }
  23.  
  24.    public Object get(String var1) {
  25.       int var2 = var1.hashCode();
  26.       int var3 = (var2 & Integer.MAX_VALUE) % this.entries.length;
  27.  
  28.       for(Entry var4 = this.entries[var3]; var4 != null; var4 = var4.next) {
  29.          if (var4.hash == var2 && var4.key.equals(var1)) {
  30.             return var4.value;
  31.          }
  32.       }
  33.  
  34.       return null;
  35.    }
  36.  
  37.    public Object get(char[] var1, int var2, int var3) {
  38.       int var4 = 0;
  39.       int var5 = var2;
  40.       if (var3 < 16) {
  41.          for(int var6 = var3; var6 > 0; --var6) {
  42.             var4 = var4 * 37 + var1[var5++];
  43.          }
  44.       } else {
  45.          int var9 = var3 / 8;
  46.  
  47.          for(int var7 = var3; var7 > 0; var5 += var9) {
  48.             var4 = var4 * 39 + var1[var5];
  49.             var7 -= var9;
  50.          }
  51.       }
  52.  
  53.       int var10 = (var4 & Integer.MAX_VALUE) % this.entries.length;
  54.  
  55.       for(Entry var11 = this.entries[var10]; var11 != null; var11 = var11.next) {
  56.          if (var11.hash == var4) {
  57.             String var8 = var11.key;
  58.             if (var8.length() == var3) {
  59.                while(true) {
  60.                   --var3;
  61.                   if (var3 < 0) {
  62.                      return var11.value;
  63.                   }
  64.  
  65.                   if (var1[var2 + var3] != var8.charAt(var3)) {
  66.                      break;
  67.                   }
  68.                }
  69.             }
  70.          }
  71.       }
  72.  
  73.       return null;
  74.    }
  75.  
  76.    public StringHashtable() {
  77.       this(13);
  78.    }
  79.  
  80.    public StringHashtable(int var1) {
  81.       this.entries = new Entry[var1];
  82.    }
  83. }
  84.