コード例 #1
0
        public void Put(int Key, T Value)
        {
            var registro = new HashtableNode <T>(_tamanho, Key, Value);
            int posicao  = registro.GetHashCode();

            if (_valores[posicao] == null)
            {
                _valores[posicao] = registro;
                _count++;
            }
            else
            {
                var reg = _valores[posicao];
                if (reg.Key == registro.Key) // se for o mesmo registro, substitui valor
                {
                    reg.Value = registro.Value;
                    return;
                }
                else
                {
                    while (reg.Proximo != null || reg.Key == registro.Key)
                    {
                        if (reg.Key == registro.Key) // se for o mesmo registro, substitui valor
                        {
                            reg.Value = registro.Value;
                            return;
                        }

                        reg = reg.Proximo;
                    }
                }
                _count++;
                reg.Proximo = registro; // novo registro na ultima posicao.
            }
        }
コード例 #2
0
        public HashtableNode <T> Get(int key)
        {
            var registro = new HashtableNode <T>(_tamanho, key);
            var posicao  = registro.GetHashCode();

            var resultado = _valores[posicao];

            while (resultado != null && resultado.Key != key)
            {
                resultado = resultado.Proximo;
            }

            return(resultado);
        }