int putValue(Hashmap* hash,void* key,void* value){ List *list; HashElement *element; if(hash == NULL || key == NULL) return 0; rehashIfNeeded(hash,key); list = getListFromHashMap(hash, key); element = getElementFromList(list,key,hash->compare); if(element != NULL){ element->value = value; return 1; } element = createHashElement(key,value); return insertNode(list,list->length, element); }
int put(HashMap *map,void *key,void *value){ List *listOfHashObjects; Object *objectPrevoiuslyPresent,*object; int hash; if(map == NULL || key == NULL) return 0; objectPrevoiuslyPresent = getMatchingObject(map,key,0); if(objectPrevoiuslyPresent){ objectPrevoiuslyPresent->values = value; return 1; } object = createObject(key,value); hash = calculateHash(map,key); listOfHashObjects = get(map->buckets,hash); insert(listOfHashObjects,object,1); rehashIfNeeded(map); return 1; };