Мне часто нужно запустить сокращение (также называемое foldl/foldr, в зависимости от ваших контекстов) в java для объединения элементов Itterable.Есть ли безопасная Java-реализация «уменьшить»?
Уменьшение принимает сбор/итерацию/etc, функцию из двух параметров и необязательное начальное значение (в зависимости от деталей реализации). Функция последовательно применяется к элементу коллекции и выводу предыдущего вызова сокращения до тех пор, пока все элементы не будут обработаны и не вернет окончательное значение.
Есть ли безопасная реализация сокращения в любом распространенном java-api? Google Collectionsкажется, как будто он должен иметь один, но я не смог его найти. (возможно, потому, что я не знаю, какие другие названия он будет использовать.)
Это выглядит интересно, но это не выглядит, как он будет вписываться в библиотеке существующих Java коллекций, которые хорошо. Если ничего больше не появится, я углубится в это глубже. – rcreswick 2008-10-21 19:05:13
Да, это сложно. Я думаю, вы можете приготовить жареный картофель. Похоже, что ключом к интеграции с коллекциями является класс IteratorToGeneratorAdapter. – sblundy 2008-10-21 19:09:18