2016-10-08 57 views

回答

1

可以使用drop功能跳過第一n元素,然後遍歷結果。例如,如果你想跳過兩個第一要素:

user=> (drop 2 [1 2 3 4]) 
(3 4) 

下能做相同的Java構成您提供:

(require '[clojure.string :as str]) 
(str/join " " (drop first-index contents)) 
+0

如果你知道元素數量,'subvec'可能是一個選項,但我不知道哪一個更有效。 –

+0

@FrankC。如果起始索引很大,那麼'subvec'一定會更有效率。 'drop'是'O(n)'w.r.t. drop-count,'subvec'總是'O(1)'。 –

+0

謝謝你@下降工作。 – user3602477

5

如果你總是處理一個載體,然後, subvec是個不錯的選擇。例如:

(subvec contents firstIndex) 

如果你想與一般的序列兼容,你需要使用dropdropO(n) w.r.t.元素數量下降,其中subvec總是O(1)。如果你只拋棄了一些元素,那麼差異可以忽略不計。但是,爲了減少大量元素(即大firstIndex),subvec將是明顯的贏家。但是subvec只有在矢量中可用。

相關問題