Hallo liebe Forenmitglieder,
ich bräuchte euren Rat bei einer weiteren Streaming-Frage. Ich arbeite immernoch an meinem Projekt und habe eine neue Möglichkeit gefunden das Streaming zu testen. Aber grade was die Schreibweise bei Streams angeht blicke ich immernoch absout nicht durch. Darum geht es:
Ich habe eine ArrayList in der sich Objekte vom Typ Invoice befinden. Die Invoice-Objekte besitzen ein Datum vom Typ LocalDate. Folgendes möchte ich erreichen: Aus der Liste soll zunächst ausgelesen werden, aus welchen Jahren die die Rechnungen stammen. Zudem soll ermittelt werden wieviele Rechnungen zu den ermittelten Jahren gehören.
Meine biserigen Überlegungen haben zu etwas geführt das ungefähr so aussieht:
Das funktioniert im Ansatz eigentlich auch ganz gut, nur hätte ich eigentlich gerne, statt dem "getDate" nur das Jahr des Datums. Aslo eine Art getDate.Year(). Allerdings weiß ich nicht, wie ich das formulieren soll. Oder ob ich möglicherweise einen entsprechenden getter im Invoice Objekt anlegen muss.
Vielen Dank vorab!
ich bräuchte euren Rat bei einer weiteren Streaming-Frage. Ich arbeite immernoch an meinem Projekt und habe eine neue Möglichkeit gefunden das Streaming zu testen. Aber grade was die Schreibweise bei Streams angeht blicke ich immernoch absout nicht durch. Darum geht es:
Ich habe eine ArrayList in der sich Objekte vom Typ Invoice befinden. Die Invoice-Objekte besitzen ein Datum vom Typ LocalDate. Folgendes möchte ich erreichen: Aus der Liste soll zunächst ausgelesen werden, aus welchen Jahren die die Rechnungen stammen. Zudem soll ermittelt werden wieviele Rechnungen zu den ermittelten Jahren gehören.
Meine biserigen Überlegungen haben zu etwas geführt das ungefähr so aussieht:
Java:
Map<LocalDate, Long> counter = invoiceList.stream()
.collect(Collectors
.groupingBy(Invoice::getDate, Collectors
.counting()));
Das funktioniert im Ansatz eigentlich auch ganz gut, nur hätte ich eigentlich gerne, statt dem "getDate" nur das Jahr des Datums. Aslo eine Art getDate.Year(). Allerdings weiß ich nicht, wie ich das formulieren soll. Oder ob ich möglicherweise einen entsprechenden getter im Invoice Objekt anlegen muss.
Vielen Dank vorab!