我想找到序列中元素最后出现的位置。测试我想出的一些解决方案,
user> (def numbers (repeatedly 100 #(rand-int 100)))
#'user/numbers
user> (time ((zipmap numbers (range)) 22))
"Elapsed time: 0.865193 msecs"
90
user> (time (last (keep-indexed #(if (= 22 %2) %1) numbers)))
"Elapsed time: 1.600483 msecs"
90
是否有更简洁的内置功能呢?
答案 0 :(得分:1)
将对象强制转换为正确的类型后,可以使用lastIndexOf
:
(.lastIndexOf numbers (int 22))
此处记录了该方法:http://docs.oracle.com/javase/6/docs/api/java/util/List.html#lastIndexOf(java.lang.Object)