Biblioteca de classes genéricas - bugs, descrição, perguntas, recursos de uso e sugestões - página 35
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Quase impossível e se se deparar com um, o acesso continua a ser super eficaz.
A colisão a qualquer nível de eficiência é má. Obrigado pela resposta. Terá isso em mente.
A colisão a qualquer nível de eficiência é má. Obrigado pela sua resposta. Vou ter isso em mente.
Os hashmaps não estão, por definição, livres de colisões.
Pergunta sobre colisões. É possível entrar em colisão em tal caso?
Se tiverem sido produzidos 27.000 registos.
Receberá constantemente colisões, especialmente quando a colecção cresce (redimensiona). Uma vez que o haxixe é adicionalmente truncado ao número de gangues, e há sempre um número limitado deles (idealmente igual a um).
Conclusões:
1. Não é a estabilidade criptográfica da função hash que importa mapear, é a sua velocidade. A função do hash só precisa de proporcionar uma boa aleatoriedade e é isso.
2. O redimensionamento é melhor evitado por todos os meios. É o redimensionamento que causa a principal desvantagem, não as colisões da função hash. Sempre que possível, inicializar sempre a colecção com um número de artigos predefinido. Mesmo que não os conheça exactamente, dê um número aproximado - isso irá ajudar muito o algoritmo.
3. As colisões são um mecanismo de compactação regular. Através de colisões, é possível armazenar três registos com id, digamos, 159, 4'569'209, 29'459'876 na matriz de comprimento três, em vez de comprimento 30 000 000, mesmo que os dois últimos valores caiam ambos no bando com índice 2.
2. O redimensionamento é melhor evitado por todos os meios. É o redimensionamento, não as colisões da função hash, que é o principal inconveniente. Sempre que possível, inicializar a colecção com um número pré-definido de artigos. Mesmo que não os conheça exactamente, dê um número aproximado - será uma grande ajuda para o algoritmo.
Por favor, mostre pelo exemplo.
Até agora só utilizei isto.
Por favor, mostrem-me um exemplo.
Até agora só utilizei isto.
Quando criar uma colecção CHashMap, utilize um dos construtores que aceita o parâmetro de capacidade. Ver o meu artigo sobre o CDicionary para detalhes sobre o desempenho durante o redimensionamento. Há uma passagem completa deste algoritmo.
Encontrei um comportamento muito invulgar no CHashMap.
Parece que uma chave é supostamente adicionada, mas nada pode ser lido a partir dela. No entanto, assim que a chave é novamente adicionada, torna-se legível!
Isto é um BAG?
Se substituir o preço1,75141 no exemplo por outro, este funcionará correctamente.
Foi infernalmente difícil detectar este comportamento num código enorme sem depuração e criar um exemplo tão conciso.
Inicializar sempre que possível a colecção com um número pré-determinado de elementos. Mesmo que não os conheça exactamente, dê um número aproximado - será uma grande ajuda para o algoritmo.
No exemplo acima, tentei definir a capacidade através do construtor. A partir de um certo valor de capacidade, o exemplo começa a funcionar correctamente.
Mas penso que se trata de uma coincidência.
Encontrei um comportamento muito invulgar no CHashMap.
Parece que uma chave é supostamente adicionada, mas nada pode ser lido a partir dela. No entanto, assim que eu voltar a adicionar a chave, ela torna-se legível!
Isto é um BAG?
Se substituir o preço1,75141 no exemplo por outro, este funcionará correctamente.
Foi infernalmente difícil detectar este comportamento num código enorme sem depuração e criar um exemplo tão conciso.
Corrigido, estará no lançamento de hoje.
Obrigado! Vejo a edição.
No exemplo acima, tentei definir a capacidade através do construtor. A partir de um certo valor de capacidade, o exemplo começa a funcionar correctamente.
Mas penso que se trata de uma coincidência.
Sim, há uma falha sobre uma falha. Eu desaconselho vivamente a utilização de genéricos.