für was braucht man streams in Java?
Also was tun die? Mann kan was schreiben doer so, aber was genau meint das?
meinst Du java.io Streams, oder die jüngeren Erweiterungen für funktionale Programmierung?
Ja io streams
2 Antworten
Nutzer, der sehr aktiv auf gutefrage ist
java.io Streams sind eine Abstraktion für eine Quelle oder Senke von Bytes. Implementiert werden kann das mit Dateien, oder auch mit Anfragen oder Antworten übers Netzwerk, aus einer Datenbank usw.
Das hat den Vorteil, dass z.B. eine gzip-Kompression nur einmal entwickelt werden muss, nämlich für einen Stream, und dann universell für alle Ströme von Bytes verwendet werden kann.
Die Streams API eröffnet einem die Möglichkeit, funktional zu programmieren.
Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.
Yoshi32
01.03.2022, 21:00
@kdjwio2
Funktionale Programmierung ist ein Programmierparadigma, in dem Funktionen nicht nur definiert und angewendet werden können, sondern auch wie Daten miteinander verknüpft, als Parameter verwendet und als Funktionsergebnisse auftreten können. Dadurch kann ein funktionales Programm sehr weitreichend neue Berechnungsvorschriften zur Laufzeit zusammensetzen und anwenden.
Beispiel in Java wäre
this.songs = Arrays.stream(folder.listFiles())
.filter(f -> f.getName().endsWith("mp3"))
.map(Song::new)
.toArray(Song[]::new);
Anstelle von
List<Song> list = new ArrayList<>();
for (File f : folder.listFiles()) {
if (f.getName().endsWith("mp3")) {
Song song = new Song(f);
list.add(song);
}
}
this.songs = list.toArray(new Song[0]);
Und was genau ist funktionales Programmieren? in Verbindung mit iostreams? ALso eher allgemein sogar, was ist ufnktionales Programmieren?