Hjem Personlig finansiering Ved hjælp af Streams and Lambda Expressions i Java - dummies

Ved hjælp af Streams and Lambda Expressions i Java - dummies

Video: Week 9 2025

Video: Week 9 2025
Anonim

Java har fancy metoder, der optimerer brugen af ​​strømme og lambda udtryk. Med vandløb og lambda udtryk kan du oprette en samlebånd. Assembly-line-løsningen bruger koncepter fra funktionel programmering.

Samlebåndet består af flere metoder. Hver metode tager dataene, omdanner dataene på en eller anden måde og henter resultaterne til den næste metode i køen. Her er en samlebånd.

En funktionel programmeringssamling.

Hver kasse repræsenterer en masse råvarer, da de omdannes langs en samlebånd. Hver pil repræsenterer en metode (eller, metaforisk, en arbejder på samlebåndet).

I overgangen fra den anden boks til den tredje boks udskilles en arbejdsmetode metode (metoden filter ) salg af varer, der ikke er dvd'er. Forestil dig Lucy Ricardo, der står mellem den anden og den tredje boks, fjerner hver bog eller cd fra samlebåndet og smider det skødesløst på gulvet.

Parameteren til Java's filter metode er en Predikat - et lambda udtryk, hvis resultat er boolean . Metoden filter udskifter elementer, der ikke passer lambda-udtryksværdien true / false .

Nogle funktionelle programmeringsmetoder
Metodenavn Medlem af Parameter (r) Resultattype Resultatværdi
strøm Samling (for eksempel en ArrayList , objekt) (ingen) Stream En strøm, der springer ud af elementer i samlingen
filter Stream Predikér Stream > En ny strøm indeholdende værdier, for hvilke lambda-udtrykket returnerer true map
Stream Funktion Stream En ny strøm, der indeholder resultaterne af at anvende lambda-udtrykket til den indkommende strøm reducere
Stream BinaryOperator Den type, der bruges af BinaryOperator Resultatet af at kombinere alle værdierne i den indkommende strøm
I overgangen fra den tredje boks til den fjerde boks trækker en arbejdsmetode metode (metoden

map ) prisen ud af hver salg . Fra arbejdstagerens sted fremover indeholder samlebåndet kun pris værdier. For at være mere præcis tager Java's

map metode Funktion som f.eks. (salg) -> salg. getPrice ()

og anvender

Funktionen til hver værdi i en strøm. Så metoden map tager en indkommende strøm af salg objekter og skaber en udgående strøm af pris værdier. I overgangen fra den fjerde boks til den femte boks tilføjer en arbejdstager metode (reducere metoden) prisen på dvd-salg.Java's reducere metode tager to parametre: Den første parameter er en indledende værdi.

I billedet ovenfor er den indledende værdi

0. 0 . Den anden parameter er en

BinaryOperator . I billedet ovenfor er

reducere metoden BinaryOperator (pris1, pris2) -> pris1 + pris2

reducere metoden bruger sin BinaryOperator til at kombinere værdierne fra den indkommende strøm. Den indledende værdi tjener som udgangspunkt for hele kombinationen. Så reducer -metoden gør to tilføjelser. Reduktionsmetoden tilføjer to værdier fra en indgående strøm.

For at sammenligne, forestill dig at kalde metoden

reducere (10.0, (værdi1, værdi2) -> værdi1 * værdi2)

med strømmen, hvis værdier indbefatter

3. 0 , 2. 0 og 5. 0 . Den resulterende handling vises under Reduktionsmetoden multiplicerer værdier fra en indgående strøm.

Du har måske hørt om Googles MapReduce programmeringsmodel. Ligheden mellem programmeringsmodellens navn og Java-metodenavnene

Kort og Reducer er ikke en tilfældighed. Taget som helhed, opsamler hele forsamlingslinjen priserne på solgte dvd'er. Koden ovenfor indeholder et komplet program ved hjælp af streams og lambda udtryk det første billede ovenfor.

importer java. tekst. TalFormat;

importer java. util. ArrayList;

offentlig klasse TallySales {

offentlig statisk tomt hoved (String [] args) {

ArrayList

salg = ny ArrayList <> (); NumberFormat currency = NumberFormat. getCurrencyInstance ();

fillTheList (salg);

dobbelt total = salg. strøm ()

. filter ((salg) -> salg. getItem (). svarer til ("dvd"))

. kort ((salg) -> salg. getPrice ())

. reducere (0, 0, (pris1, pris2) -> pris1 + pris2);

System. ud. println (valuta. format (total));

}

statisk void fillTheList (ArrayList

salg) { salg. tilføj (ny Salg ("DVD", 15. 00));

salg. tilføj (ny salg ("bog", 12,00));

salg. tilføj (ny Salg ("DVD", 21.00));

salg. Tilføj (ny Salg ("CD", 5, 25));

}

}

Koden kræver Java 8 eller nyere. Hvis din IDE er indstillet til en tidligere Java-version, skal du muligvis tinker med IDE'ens indstillinger. Du skal muligvis endda downloade en nyere version af Java.

Fetfeltet er en stor Java-opgaveopgørelse. Den højre side af sætningen indeholder en række metodeopkald. Hver metodeopkald returnerer et objekt, og hvert sådant objekt er den ting, der er før prikken i det næste metodeopkald. Sådan udgør du samlebåndet.

For eksempel henviser navnet

salg i nærheden af ​​starten af ​​boldfoden til et ArrayList objekt. Hver ArrayList objekt har en stream metode. I koden ovenfor, salg. stream () er et kald til den ArrayList objektets stream metode. Strømmetoden returnerer en forekomst af Java's

Stream klasse. (Hvilken overraskelse!) Så salg. stream () refererer til et Stream objekt. Få alle DVD-salg.

Hver

Stream objekt har en filter metode. Så salg. strøm(). filter ((salg) -> salg. getItem (). liges ("DVD"))

er et opkald til

⁣Stream objektets filter metode. Mønsteret fortsætter. Metoden

Stream objektets map returnerer endnu et Stream objekt - et Stream objekt, der indeholder priser. Hent prisen fra hvert DVD-salg.

Til den

Stream af de priser, du anvender reducer -metoden, som giver en dobbelt -værdi - summen af ​​dvd-priserne. Hent den samlede pris på alle DVD-salg.

Ved hjælp af Streams and Lambda Expressions i Java - dummies

Valg af editor

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Du kan Brug QuickBooks Online (QBO) Check vinduet til at skrive en check for at betale et faktura, du tidligere indtastede - noget, du ikke kan gøre i QuickBooks desktop produkt. Brug ikke Check-transaktionen, hvis du planlægger at betale flere regninger. Hvis du vælger en betalingsmodtager, for hvem der foreligger en udestående faktura, QBO ...

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Vælger skrivefakturaer fra revisionsværktøjerne menuen i QBOA viser siden Skriv ud fakturaer, som giver dig mulighed for at se fakturaer, du måske vil afskrive, og derefter skrive dem til en konto efter eget valg. Øverst på siden indstiller du filtre for at få vist de fakturaer, du vil have ...

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Din klient importerer de ændringer, som du ' har lavet i revisorens kopi af QuickBooks 2012-datafilen i hendes arbejdskopi af datafilen. For at gøre dette vælger klienten filen Arkiv → Revisorens Kopi → Klientaktiviteter → Kommandoen Import Revisorens Ændringer. QuickBooks viser dialogboksen Importer regnskabsførerens ændringer. For at bruge importkontoens ændringer ...

Valg af editor

Brug Flash med Nature Photography - dummies

Brug Flash med Nature Photography - dummies

Som regel afhænger du af naturlig belysning til naturfotografering. Du kan dog bruge flash-flash eller en ekstra flash-enhed til at øge naturlig belysning. On-flash-kamera De fleste digitale kameraer leveres med en flash på kameraet. Blitzenheden springer op, når det er nødvendigt. Du kan også aktivere flash på kameraet, når du skal tilføje en ...

Brug tredjeparts rå software til HDR fotografi - dummies

Brug tredjeparts rå software til HDR fotografi - dummies

Du kan købe eller downloade et væld af Råredigerere og konvertere fra tredjepart, der hjælper dig med at lave billeder med høj dynamisk rækkevidde. Hvis du er utilfreds med din nuværende software og vil prøve noget nyt, skal du hænde på en eller flere af de programmer, der er angivet i tabellen. Rå redaktører fra tredjepart Navn URL Platform (er) Freeware? ...

Brug dekorative accenter i mad stil og madfotografi - dummies

Brug dekorative accenter i mad stil og madfotografi - dummies

Når fødevaren alene ikke skaber Det drama eller den intrigue, du vil have i din fotografering med dekorative accenter - af farve, form eller tekstur - kan give dine billeder den ekstra effekt, du leder efter. Accenter er forbedringer af fødevarematerialet, og selvom de tjener formålet med at ophæve maden, er de ...

Valg af editor

Sådan finder du formatering i Word 2007 - dummies

Sådan finder du formatering i Word 2007 - dummies

Du kan bruge kommandoen Find til at skure dit Word 2007-dokument til formatering af oplysninger. Hvis du f.eks. Kun vil finde de forekomster af ordet, der ligger i fed skrift, kan du gøre det. Dette eksempel søger efter teksten gåseæg med en skriftstørrelse på 24 point i en ...

Hvordan man finder tekst i Word 2016 - dummies

Hvordan man finder tekst i Word 2016 - dummies

Ikke gider med båndet! For at finde tekst i dit Word 2016-dokument, tryk Ctrl + F, den mindeværdige tastaturgenvej til kommandoen Find. Du ser navigationsruden, svarende til hvad der vises her. Navigationsruden. Skriv den tekst, du vil lokalisere, i feltet Søg dokument. Når du skriver forekomster af teksten ...

Hvordan man finder stilarter i Word 2016 - dummies

Hvordan man finder stilarter i Word 2016 - dummies

Stilarter bor på Word 2016 Home-fanen navngivet Styles-gruppe, som vist her. Hvad du ser på båndet er Style Gallery, som kan udvides til en fuld menu med stilvalg. Hvor Word-stilarter lurer. Klik på dialogboksen launcher i det nederste højre hjørne af Styles-gruppen ...