我试图在jython中试验java 8流和集合,看看它们在纯jython中实现时是否有效 . 它发生在我身上(任何评论也赞赏)
我从一些例子开始计算
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作为字典{u'a':2L,u'b':1L,u'c':1L}
到现在为止还挺好 . 接下来,我在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();
这将如何转化为jython . 具体如何在jython中编写java lambda表达式,如string - > sting.isEmpty()?
1 回答
这里是一个在流上使用过滤器的示例,需要一个Predicate类型的对象(java.util.function.Predicate)
对于java代码:
eqvivalet jython将首先对Predicate进行子类化并实现测试方法 .
然后打印
计数:
LST: