Subsetting operators `[[` and `[` for hashsets and hashmaps provide an equivalent synthax for the basic read/write operations performed by insert(), delete() and query().

# S3 method for class 'r2r_hashmap'
x[[i]]

# S3 method for class 'r2r_hashmap'
x[i]

# S3 method for class 'r2r_hashmap'
x[[i]] <- value

# S3 method for class 'r2r_hashmap'
x[i] <- value

# S3 method for class 'r2r_hashset'
x[[i]]

# S3 method for class 'r2r_hashset'
x[i]

# S3 method for class 'r2r_hashset'
x[[i]] <- value

# S3 method for class 'r2r_hashset'
x[i] <- value

Arguments

x

an hashset or hashmap.

i

for `[[`-subsetting, an arbitrary R object, the key to be queried or inserted/deleted from the hash tables. For `[`-subsetting, a list or an atomic vector whose individual elements correspond to the keys.

value

for `[[`-subsetting: TRUE or FALSE if x is an hashset, an arbitrary R object if x is an hashmap. In the case of hashsets, setting a key's value to TRUE and FALSE is equivalent to inserting and deleting, respectively, such key from the set. For `[`-subsetting, value must be a list or an atomic vector of the same length of i, whose individual elements are the values associated to the corresponding keys in the hash table.

Value

the replacement forms ([[<- and [<-) always return value. `[[` returns TRUE or FALSE if x is an hashset, an arbitrary R object if x is an hashmap and i is a valid key; when i is not a key, the behaviour for hashmaps depends on the value of on_missing_key(x). The `[` operator returns a list of the same length of i, whose k-th element is given by x[[ i[[k]] ]] (the remark on missing keys for hashmaps applies also here).

Author

Valerio Gherardi