3

我想找到一个元素在序列中最后出现的位置。测试我想出的一些解决方案,

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

有没有更简洁的内置功能可以做到这一点?

4

1 回答 1

1

您可以lastIndexOf在将对象转换为正确类型后使用:

(.lastIndexOf numbers (int 22))

该方法记录在这里:http://docs.oracle.com/javase/6/docs/api/java/util/List.html#lastIndexOf(java.lang.Object)

于 2013-03-03T02:05:43.477 回答