Clojure - Bản đồ

A Maplà một tập hợp ánh xạ các khóa đến các giá trị. Hai loại bản đồ khác nhau được cung cấp - băm và sắp xếp.HashMaps yêu cầu các khóa hỗ trợ chính xác Mã băm và bằng. SortedMaps yêu cầu các khóa triển khai So sánh hoặc một phiên bản của Bộ so sánh.

Một bản đồ có thể được tạo theo hai cách, cách thứ nhất là thông qua phương pháp bản đồ băm.

Tạo - HashMaps

HashMaps có mối quan hệ giá trị khóa điển hình và được tạo bằng cách sử dụng hàm hash-map.

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

Đầu ra

Đoạn mã trên tạo ra kết quả sau.

{z 1, b 2, a 3}

Tạo - Bản đồ đã sắp xếp

SortedMaps có đặc điểm duy nhất là sắp xếp các phần tử của chúng dựa trên phần tử chính. Sau đây là một ví dụ cho thấy cách bản đồ đã sắp xếp có thể được tạo bằng cách sử dụng chức năng bản đồ đã sắp xếp.

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

Đoạn mã trên tạo ra kết quả sau.

{a 3, b 2, z 1}

Từ chương trình trên, bạn có thể thấy rõ rằng các phần tử trong bản đồ được sắp xếp theo giá trị khóa. Sau đây là các phương pháp có sẵn cho bản đồ.

Sr.No. Bản đồ & Mô tả
1 được

Trả về giá trị được ánh xạ tới khóa, không tìm thấy hoặc nil nếu không có khóa.

2 chứa đựng?

Xem liệu bản đồ có chứa khóa bắt buộc hay không.

3 tìm thấy

Trả về mục nhập bản đồ cho khóa.

4 chìa khóa

Trả về danh sách các khóa trong bản đồ.

5 vals

Trả về danh sách các giá trị trong bản đồ.

6 phản đối

Tách mục nhập giá trị quan trọng khỏi bản đồ.

7 hợp nhất

Hợp nhất hai mục nhập bản đồ thành một mục nhập bản đồ duy nhất.

số 8 kết hợp với

Trả về một bản đồ bao gồm phần còn lại của các bản đồ được liên kết với bản đồ đầu tiên.

9 phím chọn

Trả về một bản đồ chỉ chứa các mục nhập trong bản đồ có khóa nằm trong các khóa.

10 đổi tên-khóa

Đổi tên các khóa trong HashMap hiện tại thành các khóa mới được xác định.

11 đảo ngược bản đồ

Đảo ngược bản đồ để các giá trị trở thành khóa và ngược lại.