Au travail, j'ai réécrit les méthodes Groovy par défaut de Groovy sous une forme utilisant l'API Stream de Java, donc je vais le résumer sous forme de mémorandum.
Le fonctionnement de l'exemple de code a été confirmé dans les versions suivantes. Java: 11 Groovy: 2.5.8
DefaultGroovyMethod ⇔ Stream API each ⇔ forEach
Groovy
def list = ["Java", "Groovy", "Scala"]
list.each { println it }
---résultat---
Java
Groovy
Scala
Java
List<String> list = List.of("Java", "Groovy", "Scala");
list.forEach(System.out::println);
---résultat---
Java
Groovy
Scala
collect ⇔ map + collect
Groovy
def lowerCases = ["java", "groovy", "scala"]
def upperCases = lowerCases.collect { it.toUpperCase() }
println upperCases
---résultat---
[JAVA, GROOVY, SCALA]
Java
List<String> lowerCases = List.of("java", "groovy", "scala");
List<String> upperCases = lowerCases.stream().map(language -> language.toUpperCase()).collect(Collectors.toList());
System.out.println(upperCases);
---résultat---
[JAVA, GROOVY, SCALA]
findAll ⇔ filter + collect
Groovy
def numbers = [1, 2, 3, 4, 5]
def odds = numbers.findAll { it % 2 != 0 }
println odds
---résultat---
[1, 3, 5]
Java
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);
---résultat---
[1, 3, 5]
List https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html Stream https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html Collectors 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
Méthode Groovy qui semble être souvent utilisée (Liste) https://qiita.com/kimromi/items/e326bf9c24220df97ecf
Recommended Posts