Clojure – Maps

Clojure maps

In this guide, we will discuss Clojure Maps. A Map is a collection that maps keys to values. Two different map types are provided – hashed and sorted. HashMaps require keys that correctly support hashCode and equals. SortedMaps require keys that implement Comparable, or an instance of Comparator.

A map can be created in two ways, the first is via the hash-map method.

Creation – HashMaps

HashMaps have a typical key value relationship and is created by using hash-map function.

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def demokeys (hash-map "z" "1" "b" "2" "a" "3"))
   (println demokeys))
(example)

Output

The above code produces the following output.

{z 1, b 2, a 3}

Creation – SortedMaps

SortedMaps have the unique characteristic of sorting their elements based on the key element. Following is an example that shows how the sorted map can be created using the sorted-map function.

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def demokeys (sorted-map "z" "1" "b" "2" "a" "3"))
   (println demokeys))
(example)

The above code produces the following output.

{a 3, b 2, z 1}

From the above program you can clearly see that elements in the maps are sorted as per the key value. Following are the methods available for maps.

Sr.No.Maps & Description
1get
Returns the value mapped to key, not-found or nil if key is not present.
2contains?
See whether the map contains a required key.
3find
Returns the map entry for the key.
4keys
Returns the list of keys in the map.
5vals
Returns the list of values in the map.
6dissoc
Dissociates a key value entry from the map.
7merge
Merges two maps entries into one single map entry.
8merge-with
Returns a map that consists of the rest of the maps conj-ed onto the first.
9select-keys
Returns a map containing only those entries in map whose key is in keys.
10rename-keys
Renames keys in the current HashMap to the newly defined ones.
11map-invert
Inverts the maps so that the values become the keys and vice versa.

Next Topic : Click Here

This Post Has One Comment

Leave a Reply