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 に答える