Можете ли вы воспроизвести функции Clojure (partition) или Scalaslide() с помощью Guava?

У меня есть список, который я хочу разбить способом, аналогичным методу (partition sz step col)в Clojure или методу IterableLike.sliding( size: Int, step: Int)функция Scala. В частности, учитывая список вроде:

(1, 2, 3)

Я хочу иметь возможность перебирать вложенные списки вроде:

(1, 2), (2, 3)

В Clojure это будет сделано с помощью:

(partition 2 1 (1, 2, 3))

а со Scala это будет:

val it = Vector(1, 2, 3).sliding(2)

Однако я у меня нет такой роскоши, и я надеюсь, что мне не придется кататься самостоятельно. У Guava есть метод разделения, который близок, но не предлагает перекрытия. Гугление тоже безрезультатно. Существует ли такой метод или мне придется использовать свой собственный?

7
задан kiritsuku 10 June 2012 в 08:57
поделиться