如何在Clojure中过滤Java HashMap

如何在Clojure中过滤Java HashMap,clojure,Clojure,我试图筛选出值小于零的映射项: (filter #(< 0 (.getValue %)) map) 我做错了什么?您确定map是HashMap的一个实例吗?因为这实际上是可行的: => (import [java.util HashMap]) java.util.HashMap => (def m (HashMap.)) #'.../m => (filter #(< 0 (.getValue %)) m) () => (.put m 3 4) nil =&g

我试图筛选出值小于零的映射项:

(filter #(< 0 (.getValue %)) map)

我做错了什么?

您确定
map
HashMap
的一个实例吗?因为这实际上是可行的:

=> (import [java.util HashMap])
java.util.HashMap
=> (def m (HashMap.))
#'.../m
=> (filter #(< 0 (.getValue %)) m)
()
=> (.put m 3 4)
nil
=> (.put m 5 -32)
nil
=> (filter #(< 0 (.getValue %)) m)
(#<Entry 3=4>)
=>(导入[java.util HashMap])
java.util.HashMap
=>(def m(HashMap.))
#“…/m
=>(过滤器#(<0(.getValue%))m)
()
=>(.put m 3 4)
无
=>(.put m 5-32)
无
=>(过滤器#(<0(.getValue%))m)
(#)
所以我想错误在别的地方。如果您向我们展示创建您的
地图的代码
?哦,顺便说一句,您正在过滤大于零的值,而不是小于零的值


另一个可能导致此错误的原因是,映射中的值实际上与
不可比较。您确定
map
HashMap
的一个实例吗?因为这实际上是可行的:

=> (import [java.util HashMap])
java.util.HashMap
=> (def m (HashMap.))
#'.../m
=> (filter #(< 0 (.getValue %)) m)
()
=> (.put m 3 4)
nil
=> (.put m 5 -32)
nil
=> (filter #(< 0 (.getValue %)) m)
(#<Entry 3=4>)
=>(导入[java.util HashMap])
java.util.HashMap
=>(def m(HashMap.))
#“…/m
=>(过滤器#(<0(.getValue%))m)
()
=>(.put m 3 4)
无
=>(.put m 5-32)
无
=>(过滤器#(<0(.getValue%))m)
(#)
所以我想错误在别的地方。如果您向我们展示创建您的
地图的代码
?哦,顺便说一句,您正在过滤大于零的值,而不是小于零的值

另一个可能导致此错误的原因是地图中的值与