我做了使用Java的Stream API将Groovy的DefaultGroovyMethods重写为表单的工作,因此我将其总结为备忘录。
在以下版本中已确认示例代码的操作。
Java:11个
Groovy:2.5.8
DefaultGroovyMethod?流API
每个吗?
Groovy
1 2 3 4 5 6 7 | def list = ["Java", "Groovy", "Scala"] list.each { println it } ---結果--- Java Groovy Scala |
爪哇
1 2 3 4 5 6 7 | List<String> list = List.of("Java", "Groovy", "Scala"); list.forEach(System.out::println); ---結果--- Java Groovy Scala |
收集吗?地图收集
Groovy
1 2 3 4 5 6 | def lowerCases = ["java", "groovy", "scala"] def upperCases = lowerCases.collect { it.toUpperCase() } println upperCases ---結果--- [JAVA, GROOVY, SCALA] |
爪哇
1 2 3 4 5 6 | List<String> lowerCases = List.of("java", "groovy", "scala"); List<String> upperCases = lowerCases.stream().map(language -> language.toUpperCase()).collect(Collectors.toList()); System.out.println(upperCases); ---結果--- [JAVA, GROOVY, SCALA] |
findAll?过滤器collect
Groovy
1 2 3 4 5 6 | def numbers = [1, 2, 3, 4, 5] def odds = numbers.findAll { it % 2 != 0 } println odds ---結果--- [1, 3, 5] |
爪哇
1 2 3 4 5 6 | List<Integer> numbers = List.of(1, 2, 3, 4, 5); List<Integer> odds = numbers.stream().filter(number -> number % 2 != 0).collect(Collectors.toList()); System.out.println(odds); ---結果--- [1, 3, 5] |
参考
官方参考
列表
https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html
流
https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html
收藏家
https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Collectors.html
DefaultGroovyMethods
http://docs.groovy-lang.org/latest/html/api/org/codehaus/groovy/runtime/DefaultGroovyMethods.html
Qiita文章
可能使用的Groovy方法(列表)
https://qiita.com/kimromi/items/e326bf9c24220df97ecf