Zusammenfassung der gegenseitigen Konvertierung zwischen Groovys Standard-Groovy-Methoden und Javas Stream-API

Bei der Arbeit habe ich Groovys Standard-Groovy-Methoden mithilfe der Stream-API von Java in ein Formular umgeschrieben, sodass ich es als Memorandum zusammenfassen werde.

Die Funktionsweise des Beispielcodes wurde in den folgenden Versionen bestätigt. Java: 11 Groovy: 2.5.8

DefaultGroovyMethod ⇔ Stream API each ⇔ forEach

Groovy


def list = ["Java", "Groovy", "Scala"]
list.each { println it }

---Ergebnis---
Java
Groovy
Scala

Java


List<String> list = List.of("Java", "Groovy", "Scala");
list.forEach(System.out::println);

---Ergebnis---
Java
Groovy
Scala

collect ⇔ map + collect

Groovy


def lowerCases = ["java", "groovy", "scala"]
def upperCases = lowerCases.collect { it.toUpperCase() } 
println upperCases

---Ergebnis---
[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);

---Ergebnis---
[JAVA, GROOVY, SCALA]

findAll ⇔ filter + collect

Groovy


def numbers = [1, 2, 3, 4, 5] 
def odds = numbers.findAll { it % 2 != 0 } 
println odds

---Ergebnis---
[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);

---Ergebnis---
[1, 3, 5]

Referenzmaterial

Offizielle Referenz

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

Qiita Artikel

Groovy Methode, die häufig verwendet wird (Liste) https://qiita.com/kimromi/items/e326bf9c24220df97ecf

Recommended Posts

Zusammenfassung der gegenseitigen Konvertierung zwischen Groovys Standard-Groovy-Methoden und Javas Stream-API
Betrachten wir die Bedeutung von "Stream" und "Collect" in der Stream-API von Java.
Hinweise zur Stream-API und zu SQL von Java
[Java] Persönliche Zusammenfassung der Klassen und Methoden (grundlegend)
Zusammenfassung des ToString-Verhaltens mit Java- und Groovy-Annotationen
Konvertieren Sie mit Moshi zwischen Java-Objekten und JSON