arrays java 8 stream class
Java 8 bola významným vydaním v histórii Javy. V tomto výučbe sú vysvetlené rôzne zmeny v poliach v prostredí Java 8, ako napríklad trieda prúdov a paralelné triedenie:
Mnoho nových funkcií bolo predstavených v tomto vydaní, ako už bolo spomenuté v našom predchádzajúcom návode „Funkcie Java 8“. Dozvieme sa niečo o triede toku Java 8 a metóde paralelného triedenia.
=> Dajte si pozor na jednoduchú sériu školení Java tu.
Čo sa dozviete:
Polia v prostredí Java 8
Java8 predstavil niekoľko funkcií špecificky súvisiacich s poľami.
Obsahuje:
- Prúdy pre polia
- Paralelné triedenie
V tomto výučbe sa budeme podrobne venovať týmto dvom vlastnostiam Java 8.
Stream Java 8
Java 8 pridala triedu toku pre polia, ktorá zlepšuje čitateľnosť a efektívnosť polí. Prevod polí na stream tiež zvyšuje celkovú výkonnosť programu.
Okrem toho môžete tiež použiť rôzne metódy Stream API, ktoré môžu zjednodušiť mapovanie a filtrovanie akcií na poliach.
Nasledujúcu metódu preťaženia možno použiť na prevod poľa na prúd .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
Nasledujúci program ukazuje implementáciu používania prúdov s poľami. Tento program ukazuje porovnanie iteračného prístupu a prístupu prúdov. Neskôr sa súčet prvkov v poli vypočíta pomocou iterácií a prúdov a vypočíta sa priemer.
import java.util.Arrays; class Main { public static void main(String() args) { int intArray() = {5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100}; //calculate sum using iterative method int sum = 0; for (int i = 0; i System.out.print(e + ' ')); } }
Výkon:
Vyššie uvedený výstup ukazuje priemernú iteráciu a prístup k prúdom. Pretože prvkov je menej, priemer je rovnaký, ale s pribúdaním prvkov v poli sa iteračný prístup stáva pomalším.
Nasledujúci príklad programovania ukazuje, ako sa pole prevádza na celočíselný prúd a potom sa pomocou mapovej metódy toku mapujú prvky poľa na náhodné hodnoty a potom sa tieto prvky pridávajú. Program potom vypíše súčet všetkých prvkov v celočíselnom toku .
import java.util.Arrays; class Main { public static void main(String() args) { //declare array of ints int() ints = new int(100); //fill array with value 10 Arrays.fill(ints, 10); //maps array stream to random numbers and calculates sum of the elements int sum = Arrays.stream(ints) .map(i -> (int) (Math.random() * i)) .sum(); //print the sum System.out.println('The sum of the random array elements: ' + sum); } }
Výkon:
Použili sme metódu mapy, ktorú poskytuje trieda Stream vo vyššie uvedenom programe. Použili sme tiež metódu sum (), ktorá pridáva prvky do streamu.
Ako aktualizujem svoj BIOS na Windows 10
Metóda Java 8 parallelSort ()
Metóda „parallelSort ()“ je zavedená v prostredí Java 8. Je to metóda triedy java.util.Arrays. Na paralelné triedenie poľa sa používa metóda parallelSort. Využíva prístup vidlice a spojenia, pri ktorom sú polia rozvetvené na menšie jednotky, kým nie je každá jednotka ľahko ovládateľná a potom sa triedi jednotlivo.
Potom sa menšie jednotky spoja a celá táto operácia sa deje paralelne. Jednou z hlavných výhod tejto metódy parallelSort je, že využíva viacvláknové spracovanie, vďaka čomu je triedenie rýchlejšie a efektívnejšie.
Metóda parallelSort () má nasledujúce preťaženia:
public static void parallelSort (Object obj())
Prototyp vyššie uvedenej metódy sa používa na triedenie poľa vo vzostupnom poradí.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Vyššie uvedené preťaženie sa používa na triedenie prvkov v zadanom rozsahu od „odIndex“ do „toIndex“ v poli.
Nasledujúci program Java demonštruje metódu parallelSort na triedenie poľa.
import java.util.Arrays; public class Main { public static void main(String() args) { // Creating an array int numArray() = { 54,34,25,13,65,37,85,47,26 }; // print the original Array System.out.print('Original Unsorted Array: '); // iterate the array using streams Arrays.stream(numArray) .forEach(num ->System.out.print(num + ' ')); System.out.println(); // Using parallelSort() method to sort array Arrays.parallelSort(numArray); // Print sorted Array System.out.print('Array sorted using parallelSort: '); Arrays.stream(numArray) .forEach(num->System.out.print(num + ' ')); } }
Výkon:
Vo vyššie uvedenom programe je vstupné pole zoradené pomocou metódy parallelSort a výstup je vytlačený.
Nasledujúci program porovnáva dve metódy triedenia poskytované triedou Arrays, tj. Metóda sort (), ktorá je metódou lineárneho triedenia a parallelSort (). Tento program porovnáva čas potrebný na triedenie poľa každou metódou . Čas sa počíta pre každú iteráciu.
import java.util.Arrays; import java.util.Random; public class Main { public static void main(String() args) { // Create an array int numArray() = new int(100); System.out.println('Iteration#' + ' ' + 'Serial Sort :Time(in ns)' + ' ' + 'Parallel Sort :Time(in ns)'); // Iterating Loop till i = 1000 // with interval of 10 for (int i = 0; i <100; i += 10) { System.out.print(' ' + (i / 10 + 1) + ' '); // Array generation using random function Random rand = new Random(); for (int j = 0; j < 100; j++) { numArray(j) = rand.nextInt(); } // Arrays.sort() method: Start and End Time long startTime = System.nanoTime(); // Call Serial Sort method Arrays.sort Arrays.sort(numArray); long endTime = System.nanoTime(); // Print Serial Sort results System.out.print((endTime - startTime) + ' '); // Arrays.parallelSort() start and end time startTime = System.nanoTime(); // call Parallel Sort method Arrays.parallelSort Arrays.parallelSort(numArray); endTime = System.nanoTime(); // Print Parallel Sort results System.out.println(' ' + (endTime - startTime)); System.out.println(); } } }
Výkon:
Vyššie uvedený výstup ukazuje porovnanie času potrebného pre jednotlivé iterácie metódami sort a parallelSort. Vidíte jasný rozdiel medzi výkonom metódy sort a parallelSort s kapotážou metódy parallelSort oveľa lepšie ako sort.
často kladené otázky
Otázka 1) Čo je to Arrays Stream v Jave?
Odpoveď: Toto je prúdová metóda triedy Arrays. Stream tejto metódy (pole T ()) vracia sekvenčný prúd z poľa.
Otázka 2) Čo je Stream () v Jave?
Odpoveď: Stream () v Jave bol prvýkrát predstavený v Jave 8. Trieda Stream pozostáva z API používaného na spracovanie zbierkových objektov vrátane polí.
Otázka č. 3) Ako funguje Java Stream?
Odpoveď: Rozhrania API toku Java majú mechanizmus, ktorý umožňuje prevádzať na stream zbierky ako ArrayList, Arrays atď. Taktiež paralelne spracúvajú každý prvok týchto prúdov pomocou rôznych poskytnutých metód a odovzdávajú výsledky.
Otázka č. 4) Aký je účel metódy MAP Stream v Jave 8?
Odpoveď: Metóda mapy patrí do triedy java.util.stream.Streams. Metóda mapovania použije funkciu na každý prvok streamu alebo ju namapuje na inú hodnotu a transformuje ju.
Otázka č. 5) Je stream rýchlejší ako pre slučku Java?
Odpoveď: Áno, najmä paralelné prúdy. Napríklad, metóda parallelSort triedy Arrays, ktorá používa paralelné prúdy, je rýchlejšia ako metóda sekvenčného triedenia poskytovaná triedou Arrays.
Záver
Streams in Java je nová funkcia zahrnutá od Java 8. Streams poskytuje reťazcové API, ktorého metódy je možné použiť na zbierky v Java. V tomto tutoriáli sme videli metódy streamovania, ktoré fungujú na poliach Java. Videli sme aj ďalšie funkcie, ktoré boli pridané do polí Java v edícii Java 8.
Jedným z nich je stream, zatiaľ čo druhým je metóda parallelSort, ktorá triedi pole paralelne. Táto metóda je rýchlejšia ako lineárne triedenie metód, čo bolo zrejmé v programe, kde sme obe metódy porovnali.
Prečítajte si tiež = >> Zmeny rozhrania v prostredí Java 8
=> Navštívte tu sériu exkluzívnych výukových programov Java.
Odporúčané čítanie
- Java dátové typy, slučky, polia, prepínače a tvrdenia
- Metóda MongoDB Sort () s príkladmi
- Kopírovacie pole Java: Ako kopírovať / klonovať pole v Jave
- Generické pole Java - Ako simulovať generické polia v prostredí Java?
- MultiDimensional Arrays In Java (2D a 3D Arrays In Java)
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- Ako zoradiť pole v Jave - návod s príkladmi
- Čo je statické kľúčové slovo v prostredí Java?