arrays java 8 stream class
Java 8 byla významným vydáním v historii Javy. V tomto výukovém programu jsou vysvětleny různé změny polí v prostředí Java 8, například třída proudů a paralelní řazení:
Mnoho nových funkcí bylo představeno v této verzi, jak již bylo popsáno v našem předchozím tutoriálu „Funkce Java 8“. Pojďme se seznámit s třídou streamu Java 8 a metodou paralelního řazení.
=> Dávejte pozor na jednoduchou sérii školení Java zde.
Co se naučíte:
Pole v Javě 8
Java8 představil několik funkcí konkrétně souvisejících s poli.
To zahrnuje:
- Proudy pro pole
- Paralelní třídění
V tomto kurzu se budeme podrobně zabývat těmito dvěma funkcemi prostředí Java 8.
Stream Java 8
Java 8 přidala třídu proudu pro pole, která zlepšuje čitelnost a účinnost polí. Převod polí na stream také zvyšuje celkový výkon programu.
Kromě toho můžete také použít různé metody Stream API, které mohou zjednodušit mapování a filtrování akcí na polích.
Následující metodu přetížení lze použít k převodu pole na stream .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
Následující program ukazuje implementaci používání streamů s poli. Tento program ukazuje srovnání iteračního přístupu a přístupu proudů. Později se součet prvků v poli vypočítá pomocí Iterace a Streamů a vypočítá se průměr.
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ýstup:
Výše uvedený výstup ukazuje průměrnou iteraci a přístup k datovým proudům. Protože prvků je méně, průměr je stejný, ale s nárůstem prvků v poli se iterativní přístup zpomalí.
Následující příklad programování ukazuje, jak je pole převedeno na celočíselný proud a poté pomocí metody mapování proudu mapovat prvky pole na náhodné hodnoty a poté tyto prvky přidat. Program pak vypíše součet všech prvků v celočíselném proudu .
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ýstup:
Použili jsme metodu mapy, kterou poskytuje třída Stream ve výše uvedeném programu. Použili jsme také metodu sum (), která přidává prvky do streamu.
jaké programy mohou upravovat soubory PDF
Metoda Java 8 parallelSort ()
Metoda „parallelSort ()“ je zavedena v prostředí Java 8. Jedná se o metodu třídy java.util.Arrays. Metoda parallelSort se používá k řazení pole paralelním způsobem. Používá přístup vidlice a spojení, ve kterém jsou pole rozvětvena na menší jednotky, dokud není každá jednotka snadno spravovatelná a poté tříděna jednotlivě.
Pak jsou menší jednotky spojeny dohromady a celá tato operace probíhá paralelně. Jednou z hlavních výhod této metody parallelSort je, že využívá vícevláknové zpracování, díky čemuž je řazení rychlejší a efektivnější.
Metoda parallelSort () má následující přetížení:
public static void parallelSort (Object obj())
Prototyp výše uvedené metody se používá k řazení pole ve vzestupném pořadí.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Výše uvedené přetížení se používá k řazení prvků v zadaném rozsahu od „fromIndex“ do „toIndex“ v poli.
Následující program Java demonstruje metodu parallelSort pro třídění pole.
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ýstup:
Ve výše uvedeném programu je vstupní pole tříděno pomocí metody parallelSort a výstup je vytištěn.
Následující program porovnává dvě metody třídění poskytované třídou Arrays, tj. Metoda sort (), což je metoda lineárního třídění a parallelSort (). Tento program porovnává čas, který každá metoda potřebuje k seřazení pole . Čas se počítá pro každou iteraci.
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ýstup:
Výše uvedený výstup ukazuje srovnání času potřebného metodami sort a parallelSort pro každou iteraci. Můžete vidět jasný rozdíl mezi výkonem řazení a metodou paralelního řazení s kapitalizací metody paralelního řazení mnohem lépe než řazení.
Často kladené otázky
Otázka č. 1) Co je to Arrays Stream v Javě?
Odpovědět: Toto je metoda proudu třídy Arrays. Tento proud metody (pole T ()) vrací sekvenční proud z pole.
Otázka 2) Co je Stream () v Javě?
Odpovědět: Stream () v Javě byl poprvé představen v Javě 8. Třída Stream se skládá z API používaného pro zpracování objektů kolekce včetně polí.
Otázka č. 3) Jak funguje Java Stream?
Odpovědět: Rozhraní API Java stream má mechanismus, který dokáže převádět kolekce jako ArrayList, Arrays atd. Na stream. Rovněž zpracovávají každý prvek těchto proudů paralelně pomocí různých poskytovaných metod a předávají výsledky.
Otázka č. 4) Jaký je účel metody MAP Stream v Javě 8?
Odpovědět: Metoda map patří do třídy java.util.stream.Streams. Metoda mapování aplikuje funkci na každý prvek proudu nebo ji mapuje na jinou hodnotu a transformuje ji.
Otázka č. 5) Je Stream rychlejší než pro smyčku Java?
Odpovědět: Ano, zejména paralelní proudy. Například, metoda parallelSort třídy Arrays, která používá paralelní proudy, je rychlejší než metoda sekvenčního řazení poskytovaná třídou Arrays.
Závěr
Streams in Java is a new feature included since Java 8. Streams provide a string API whose metody can be used on collections in Java. V tomto kurzu jsme viděli metody streamování, které fungují na polích Java. Také jsme viděli další funkce, které byly přidány do polí Java v edici Java 8.
Jedním z nich je stream, zatímco druhým je metoda parallelSort, která řadí pole paralelně. Tato metoda je rychlejší než lineární řazení metod, což bylo patrné v programu, kde jsme obě metody porovnali.
Přečtěte si také = >> Změny rozhraní v prostředí Java 8
=> Navštivte zde exkluzivní sérii výukových programů Java.
Doporučené čtení
- Java DataTypes, Loops, Arrays, Switch a Assertions
- Metoda MongoDB Sort () s příklady
- Java Copy Array: Jak kopírovat / klonovat pole v Javě
- Generické pole Java - Jak simulovat obecná pole v Javě?
- Vícedimenzionální pole v Javě (2D a 3D pole v Javě)
- Výukový program pro rozhraní Java a abstrakt třídy s příklady
- Jak řadit pole v Javě - návod s příklady
- Co je statické klíčové slovo v Javě?