Groovy的默认Groovy方法与Java的Stream API之间的相互转换的摘要


我做了使用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