/// <summary> /// copies the hash table to the specified array /// </summary> private void CopyHashTableTo(LongHashMapEntry[] par1ArrayOfLongHashMapEntry) { LongHashMapEntry[] alonghashmapentry = HashArray; int i = par1ArrayOfLongHashMapEntry.Length; for (int j = 0; j < alonghashmapentry.Length; j++) { LongHashMapEntry longhashmapentry = alonghashmapentry[j]; if (longhashmapentry == null) { continue; } alonghashmapentry[j] = null; do { LongHashMapEntry longhashmapentry1 = longhashmapentry.NextEntry; int k = GetHashIndex(longhashmapentry.Hash, i); longhashmapentry.NextEntry = par1ArrayOfLongHashMapEntry[k]; par1ArrayOfLongHashMapEntry[k] = longhashmapentry; longhashmapentry = longhashmapentry1; }while (longhashmapentry != null); } }
/// <summary> /// removes the key from the hash linked list /// </summary> LongHashMapEntry RemoveKey(long par1) { int i = GetHashedKey(par1); int j = GetHashIndex(i, HashArray.Length); LongHashMapEntry longhashmapentry = HashArray[j]; LongHashMapEntry longhashmapentry1; LongHashMapEntry longhashmapentry2; for (longhashmapentry1 = longhashmapentry; longhashmapentry1 != null; longhashmapentry1 = longhashmapentry2) { longhashmapentry2 = longhashmapentry1.NextEntry; if (longhashmapentry1.Key == par1) { ModCount++; NumHashElements--; if (longhashmapentry == longhashmapentry1) { HashArray[j] = longhashmapentry2; } else { longhashmapentry.NextEntry = longhashmapentry2; } return(longhashmapentry1); } longhashmapentry = longhashmapentry1; } return(longhashmapentry1); }
public LongHashMapEntry(int par1, long par2, object par4Obj, LongHashMapEntry par5LongHashMapEntry) { Value = par4Obj; NextEntry = par5LongHashMapEntry; Key = par2; Hash = par1; }
/// <summary> /// creates the key in the hash table /// </summary> private void CreateKey(int par1, long par2, object par4Obj, int par5) { LongHashMapEntry longhashmapentry = HashArray[par5]; HashArray[par5] = new LongHashMapEntry(par1, par2, par4Obj, longhashmapentry); if (NumHashElements++ >= Capacity) { ResizeTable(2 * HashArray.Length); } }
LongHashMapEntry GetEntry(long par1) { int i = GetHashedKey(par1); for (LongHashMapEntry longhashmapentry = HashArray[GetHashIndex(i, HashArray.Length)]; longhashmapentry != null; longhashmapentry = longhashmapentry.NextEntry) { if (longhashmapentry.Key == par1) { return(longhashmapentry); } } return(null); }
/// <summary> /// get the value from the map given the key /// </summary> public virtual object GetValueByKey(long par1) { int i = GetHashedKey(par1); for (LongHashMapEntry longhashmapentry = HashArray[GetHashIndex(i, HashArray.Length)]; longhashmapentry != null; longhashmapentry = longhashmapentry.NextEntry) { if (longhashmapentry.Key == par1) { return(longhashmapentry.Value); } } return(null); }
/// <summary> /// add the key value pair to the list /// </summary> public virtual void Add(long par1, object par3Obj) { int i = GetHashedKey(par1); int j = GetHashIndex(i, HashArray.Length); for (LongHashMapEntry longhashmapentry = HashArray[j]; longhashmapentry != null; longhashmapentry = longhashmapentry.NextEntry) { if (longhashmapentry.Key == par1) { longhashmapentry.Value = par3Obj; } } ModCount++; CreateKey(i, par1, par3Obj, j); }
/// <summary> /// resizes the table /// </summary> private void ResizeTable(int par1) { LongHashMapEntry[] alonghashmapentry = HashArray; int i = alonghashmapentry.Length; if (i == 0x40000000) { Capacity = 0x7fffffff; return; } else { LongHashMapEntry[] alonghashmapentry1 = new LongHashMapEntry[par1]; CopyHashTableTo(alonghashmapentry1); HashArray = alonghashmapentry1; Capacity = (int)((float)par1 * PercentUseable); return; } }
public bool Equals(object par1Obj) { if (!(par1Obj is LongHashMapEntry)) { return(false); } LongHashMapEntry longhashmapentry = (LongHashMapEntry)par1Obj; long? long1 = Convert.ToInt64(GetKey()); long? long2 = Convert.ToInt64(longhashmapentry.GetKey()); if (long1 == long2 || long1 != null && long1.Equals(long2)) { object obj = GetValue(); object obj1 = longhashmapentry.GetValue(); if (obj == obj1 || obj != null && obj.Equals(obj1)) { return(true); } } return(false); }
/// <summary> /// calls the removeKey method and returns removed object /// </summary> public virtual object Remove(long par1) { LongHashMapEntry longhashmapentry = RemoveKey(par1); return(longhashmapentry != null ? longhashmapentry.Value : null); }