Java 如何在Clojure中迭代树映射?
我使用Clojure 1.1.0,我想迭代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))
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])