private long GetIfAbsentPutForSentinelKey(long key, LongFunction0 supplier) { if (key == EMPTY_KEY) { if (!_hasZeroKey) { ++_modCount; _hasZeroKey = true; _zeroValue = supplier.value(); } return(_zeroValue); } if (key == REMOVED_KEY) { if (!_hasOneKey) { ++_modCount; _hasOneKey = true; _oneValue = supplier.value(); } return(_oneValue); } throw new AssertionError("Invalid sentinel key: " + key); }
public override long GetIfAbsentPut(long key, LongFunction0 supplier) { if (IsSentinelKey(key)) { return(GetIfAbsentPutForSentinelKey(key, supplier)); } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int idx = indexOf(key); int idx = IndexOf(key); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final long keyAtIdx = getKeyAt(idx); long keyAtIdx = GetKeyAt(idx); if (keyAtIdx == key) { return(GetValueAt(idx)); } ++_modCount; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final long value = supplier.value(); long value = supplier.value(); if (keyAtIdx == REMOVED_KEY) { --_removals; } SetKeyAt(idx, key); SetValueAt(idx, value); ++_entriesInMemory; if (_entriesInMemory >= _resizeOccupancyThreshold) { GrowAndRehash(); } return(value); }