J'essaie d'expérimenter avec java 8 streams et collections en jython pour voir si elles sont efficaces puis implémentées en pure jython. Il me semble qu'il pourrait (tout commentaire sur ce aussi apprécié)Comment utiliser Java 8 lambdas en Jython
J'ai commencé avec quelques exemples, le comptage
from java.util.function import Function
from java.util import ArrayList
from java.util.stream import Collectors
letters = ArrayList(['a','b','a','c']);
cnt=letters.stream().collect(Collectors.groupingBy(Function.identity(),
Collectors.counting()))
cnt d'impression dictionnaire { « GPI: 2L, u'b » : 1L, u'c ': 1L}
jusqu'ici tout va bien. Ensuite, j'ai trouvé un exemple sur l'utilisation de filtre sur les flux en Java
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
//get count of empty string
int count = strings.stream().filter(string -> string.isEmpty()).count();
comment cela se traduirait en jython. spécifiquement comment peut-on écrire expression java lambda comme chaîne -> sting.isEmpty() dans jython?
Créer un objet 'Predicate' et le transmettre à' Stream.filter'. La syntaxe de la flèche est juste du sucre syntaxique. Dans les coulisses, vous définissez un objet 'Predicate' qui a un argument et retourne un résultat' boolean'. https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#filter-java.util.function.Predicate- – IceArdor
@iceArdor merci, utilisé pour répondre à la question – suvy