Ho una lista che voglio dividere in modo simile al metodo (partition sz step col)
di Clojure o alla funzione IterableLike.sliding(size: Int, step: Int)
di Scala. In particolare, data una lista come:Puoi replicare le funzioni di Clojure (partizione) o Scala() con Guava?
(1, 2, 3)
voglio essere in grado di scorrere i sotto-liste come:
(1, 2), (2, 3)
In Clojure questo potrebbe essere fatto con:
(partition 2 1 (1, 2, 3))
e con Scala sarebbe:
val it = Vector(1, 2, 3).sliding(2)
Tuttavia non ho un tale lusso e spero di evitare di dover girare il mio. Guava ha un metodo di partizione che si avvicina, ma non offre la sovrapposizione. Anche googling è stato infruttuoso. Esiste un tale metodo o dovrò eseguire il mio proprio?
se nessuno conosce meglio, è possibile unire due partizioni guava, dove il secondo è da una sequenza con un elemento rilasciato ... –
Non avresti bisogno delle partizioni * size *? Buona idea però. –
È possibile utilizzare la mappa, ad esempio: '(mappa (fn [xy] '(x, y)) lst (resto lst)' – Ankur