Есть ли эквивалент Python itertools для Java?

Я ищу библиотеку (желательно родовую), которая генерирует итеративные комбинации и перестановки данных, содержащихся в коллекциях. Декартово произведение тоже было бы хорошо.

Лучшим способом описания того, что я хочу, будет "itertools for Java".

Ответы

Ответ 1

itertools делает гораздо больше, чем просто комбинации и перестановки, поэтому (хотя, конечно, было бы неплохо иметь все itertools при кодировании Java;-) вы можете обойтись гораздо меньше.

Например, для перестановок см. здесь; для комбинаций здесь (оба класса принадлежат одному автору).

Ответ 2

Я фактически создаю порт itertools для java: он называется neoitertools

Любые отзывы оцениваются по-прежнему в бета-версии. Отсутствует функция "продукт" и некоторые интенсивные тесты.

Ответ 4

Здесь вы найдете что-то, что может удовлетворить ваши комбинаторные потребности в библиотеке:

http://code.google.com/p/combinatoricslib/

Ответ 5

Я просто выбрасываю это, но не следует ли использовать реализацию Python itertools непосредственно из Java с помощью Jython? Является ли это апикалом на основе C?

[один Google позже]

itertools (документация по API Jython)

Фактически, проект neoitertools, указанный выше, выглядит очень многообещающим, он, кажется, находится в [очень] активной разработке (в соответствии с кодом Google ) и выглядит как полная реализация функциональности itertools, а также доступная через Maven.

Просто мой 2 пенс.

Ответ 6

Несколько лет спустя combinatorics, похоже, соответствует вашим потребностям. Взято из файла readme:

Simple permutations
Permutations with repetitions
Simple combinations
Combinations with repetitions
Subsets
Integer Partitions
List Partitions
Integer Compositions