Esiste un equivalente di itertools di Python per Java? [chiuso]
-
20-09-2019 - |
Domanda
Sono alla ricerca di una libreria (preferibilmente generici) che genera combinazioni iterabili e permutazioni dei dati contenuti in collezioni. prodotto cartesiano sarebbe anche bello.
Il miglior modo di descrivere ciò che voglio sarebbe "itertools per Java".
Soluzione
itertools
fa molto di più di solo combinazioni e permutazioni, così (mentre sarebbe sicuramente bello avere tutti itertools
quando si scrive codice Java ;-) si riesce a cavarsela con molto meno.
Ad esempio, per le permutazioni, vedere qui ; per le combinazioni, qui (sia le classi sono dallo stesso autore).
Altri suggerimenti
In realtà sto facendo un porto di itertools a Java: si chiama neoitertools
Qualsiasi commento apprezzato come è ancora in fase beta. Manca la funzione di "prodotto" ancora, e alcuni test intensivi.
prodotto cartesiano è disponibile qui: http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Sets.html#cartesianProduct%28java.util.Set...%29
Qui è possibile trovare qualcosa che potrebbe coprire le esigenze combinatorie raggruppati in una libreria:
Sto solo buttando questa là fuori, ma non dovrebbe essere possibile usare l'esecuzione itertools di Python direttamente da Java utilizzando Jython? Si tratta di un'API C-based?
[uno Google tardi]
itertools (Jython documentazione API)
In realtà, il href="http://code.google.com/p/neoitertools/" rel="nofollow"> neoitertools progetto elencato sopra sembra molto promettente, sembra essere in [ molto] sviluppo attivo (in base al codice di Google) e sembra essere un'Implementazione completa della funzionalità itertools, in più è disponibile tramite Maven.
Solo il mio 2 pence.
Pochi anni dopo, combinatoria sembra soddisfare le vostre esigenze. Tratto da readme:
Simple permutations
Permutations with repetitions
Simple combinations
Combinations with repetitions
Subsets
Integer Partitions
List Partitions
Integer Compositions