Java 如何在Clojure中迭代树映射?

Java 如何在Clojure中迭代树映射?,java,data-structures,clojure,Java,Data Structures,Clojure,我使用Clojure 1.1.0,我想迭代TreeMap的所有元素。我该怎么做呢?您可以像使用普通clojure贴图一样使用seq/doseq (doseq [entry treeMap] ( prn (key entry) (val entry)) ) 其中treeMap是您的treeMap实例。您可以通过使用seq/doseq来实现,就像使用普通clojure映射一样 (doseq [entry treeMap] ( prn (key entry) (val entry))

我使用Clojure 1.1.0,我想迭代
TreeMap
的所有元素。我该怎么做呢?

您可以像使用普通clojure贴图一样使用
seq
/
doseq

(doseq [entry treeMap] (
    prn (key entry) (val entry))
)

其中
treeMap
是您的
treeMap
实例。

您可以通过使用
seq
/
doseq
来实现,就像使用普通clojure映射一样

(doseq [entry treeMap] (
    prn (key entry) (val entry))
)

其中
treeMap
是您的
treeMap
实例。

此外,您还可以使用
map
函数,并通过
for
宏列出理解,以处理
java.util.treeMap
中的每个条目:

> (def t (new java.util.TreeMap {:a 1 :b 2}))

;; reverse all the pairs
> (map (fn [e] [(val e) (key e)]) t)
([1 :a] [2 :b])

;; same thing, but with destructuring/for
> (for [[k v] t] 
       [v k])
([1 :a] [2 :b])

此外,您还可以使用
map
函数并通过
for
宏列出理解,以处理
java.util.TreeMap
中的每个条目:

> (def t (new java.util.TreeMap {:a 1 :b 2}))

;; reverse all the pairs
> (map (fn [e] [(val e) (key e)]) t)
([1 :a] [2 :b])

;; same thing, but with destructuring/for
> (for [[k v] t] 
       [v k])
([1 :a] [2 :b])