Mir wurde gesagt "Write in Stream!" Und ich habe die Vorzüge nicht verstanden, also werde ich es zusammenfassen.
--stream Sehr praktisch.
List<String> tanakaList =
list.stream
.filter(item -> item.getName.equals("Tanaka"))
.collect(Collectors.toList());
filter
, um nur die Objekte einzugrenzen, deren Name" Tanaka "ist.(Da ich die Anzahl der Zeilen mit list.add () genommen habe, bin ich wirklich froh, dass es verschwunden ist ...)
Sie können nicht wie if-else verzweigen. Wenn Sie dies tun möchten, müssen Sie zwei Streams vorbereiten und als separate Prozesse schreiben.
Wenn Sie beim Sortieren mit SQL und beim Abrufen von Daten Stream verwenden, müssen Sie den Sortiervorgang erneut auf der Stream-Seite schreiben. Daher dachte ich, dass er nicht in dem Prozess verwendet werden sollte, der sich um die Sortierreihenfolge kümmert.
List<String> nameList = list.stream
.map(item -> item.getName)
.collect(Collectors.toList());
list.stream
.filter(item -> !item.getName.equals("Tanaka"))
.forEach({
item -> throw new Exception(
"don't tanaka exception."
)
});
int total = list.stream()
.reduce((base, value) -> {
return base + value;
});
Inhalt auflisten
List<int> list = Lists.newArrayList();
list.add(1);
list.add(2);
list.add(3);
1: Warum kann ich eine Methode wie "item.getName" verwenden?
-> Es gibt eine Modellklasse "Student", deren Name aus SQL stammt.
Wenn die Liste durch "List
Schülerklasse
@Data
@Builder
class Student {
private String name;
}
Stream.java
List<Student> list = Lists.newArrayList();
List<String> tanakaList = list.stream
.map(item -> item.getName.equals())
.collect(Collectors.toList())
Ich war nicht an Lambda gewöhnt und der Stream war in einem schlechten Zustand, aber es war gut, weil die Menge an Code überwältigend reduziert wurde, als ich versuchte, ihn zu verwenden. Der größte Vorteil ist, dass die Verschachtelungstiefe sofort beseitigt wurde. Als ich wusste, dass es so praktisch ist, dachte ich, ich würde es nicht so benutzen, als wäre ich in Zukunft davon besessen. Also dachte ich, ich hätte Angst, wenn es irgendwelche Nachteile gäbe, die ich noch nicht kannte. (Aber ich denke, ich werde es für eine Weile benutzen, danke, dass du es mir erzählt hast ...)
Recommended Posts