Atualiza o valor correspondente a chave em um objeto da classe tHashMap.
Sintaxe
lRet := HMSet( < oHash >, < yKey >, < xVal > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
oHash | objeto | Objeto da classe HashMap (tHashMap) | X |
|
yKey | qualquer | Chave de armazenamento do valor | X |
|
xVal | qualquer | Valor a ser armazenado na chave | X |
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | lógico | Verdadeiro (.T.) se executou corretamente e Falso (.F) se houve erro |
Observações
- Se a chave não for encotrada, uma linha será adicionada no HashMap com os valores fornecidos.
Exemplos
Exemplo 1 - com teste de comparação entre Array e HashMap
User Function ex_HMSet() Local cKey := "item7" Local oVal := 10 Local lRet := .F. Local nI := 0 Local nMax := 200000 Local nTimeIni := 0 Local nTimeFim := 0 Local nTimeDelta := 0 Local nRet Local aLista // Cria um novo HashMap Local oHash := HMNew() // Insere um valor no HashMap lRet := HMSet(oHash, cKey, oVal) If lRet == .T. ConOut("Inserido chave '" + cKey + "' com sucesso") Else ConOut("Falha ao inserir chave '" + cKey + "'") EndIf // TESTE DE COMPARACAO COM ARRAY nTimeIni := Seconds() For nI := 1 to nMax cKey := Str(nI) // Insere um valor no HashMap lRet := HMSet(oHash, cKey, nI*-10) If lRet == .F. ConOut("Falha ao inserir chave '" + cKey + "'") EndIf Next nTimeFim := Seconds() nTimeDelta := nTimeFim - nTimeIni ConOut("Tempo gasto para inserir " + AllTrim(Str(nMax)) + " valores: " + AllTrim(Str(nTimeDelta)) + " segundos") nTimeIni := Seconds() cKey := Str(nMax/2) // Obtem um valor do HashMap lRet := HMGet(oHash, cKey, @oVal) If lRet == .F. ConOut("Falha ao recuperar chave '" + cKey + "'") EndIf nTimeFim := Seconds() nTimeDelta := nTimeFim - nTimeIni ConOut("Tempo gasto recuperar a chave '" + cKey + "': " + AllTrim(Str(nTimeDelta)) + " segundos") VarInfo(cKey, oVal) // Limpa os dados do HashMap HMClean(oHash) // Libera o objeto de HashMap FreeObj(oHash) oHash := Nil // TESTE DE COMPARACAO COM ARRAY // Cria uma lista aLista := {} nTimeIni := Seconds() For nI := 1 to nMax cKey := Str(nI) // Insere um valor no HashMap AAdd(aLista, {cKey, nI*-10}) Next nTimeFim := Seconds() nTimeDelta := nTimeFim - nTimeIni ConOut("Tempo gasto para inserir " + AllTrim(Str(nMax)) + " valores: " + AllTrim(Str(nTimeDelta)) + " segundos (Array)") nTimeIni := Seconds() cKey := Str(nMax/2) // Obtem um valor do HashMap nRet := AScan(aLista, {|x| x[1] == cKey}) If nRet == 0 ConOut("Falha ao recuperar chave '" + cKey + "' (Array)") EndIf nTimeFim := Seconds() nTimeDelta := nTimeFim - nTimeIni ConOut("Tempo gasto recuperar a chave '" + cKey + "': " + AllTrim(Str(nTimeDelta)) + " segundos (Array)") If nRet > 0 VarInfo(cKey, aLista[nRet]) EndIf // Libera a lista aLista := Nil Return
Abrangência
Totvs Application Server com versão igual ou superior a 7.00.131227A
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas