arrays java 8 stream class
Java 8 har været en større frigivelse i Java's historie. Denne vejledning forklarer forskellige ændringer i arrays i Java 8 som Streams Class og parallel sortering:
Mange nye funktioner blev introduceret i denne udgivelse som allerede diskuteret i vores tidligere tutorial om “Java 8-funktioner”. Lad os lære om Java 8 Stream Class og parallel sorteringsmetode.
=> Pas på den enkle Java-træningsserie her.
Hvad du lærer:
Arrays i Java 8
Java8 introducerede et par funktioner, der specifikt er relateret til arrays.
Det omfatter:
- Strømme til arrays
- Parallel sortering
I denne vejledning diskuterer vi disse to funktioner i Java 8 detaljeret.
Java 8 Stream
Java 8 har tilføjet en streamklasse til arrays, der forbedrer læsbarheden såvel som effektiviteten af arrays. Konvertering af arrays til stream øger også programmets samlede ydeevne.
Ud over dette kan du også bruge de forskellige Stream API-metoder, der kan forenkle kortlægning og filtreringshandlinger på arrays.
Følgende metodeoverbelastning kan bruges til at konvertere en matrix til en stream .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
Følgende program viser implementeringen af brug af streams med arrays. Dette program viser en sammenligning af Iterativ tilgang og Streams-tilgang. Senere beregnes summen af elementerne i arrayet ved hjælp af Iteration og Streams, og gennemsnittet beregnes.
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 + ' ')); } }
Produktion:
Ovenstående output viser den gennemsnitlige iteration og streams tilgang. Da elementerne er mindre, er gennemsnittet det samme, men når elementerne i arrayet stiger, bliver den iterative tilgang langsommere.
Det næste programmeringseksempel viser, hvordan en matrix konverteres til heltalstrøm og derefter bruger kortmetoden til strømmen til at kortlægge elementer i matrixen til tilfældige værdier og derefter tilføje disse elementer. Programmet derefter udskriver summen af alle elementerne i heltalsstrømmen .
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); } }
Produktion:
Vi har brugt kortmetoden, der leveres af Stream-klassen i ovenstående program. Vi brugte også sum () -metoden, der tilføjer elementerne i strømmen.
mobiltelefon spion app til Android
Java 8 parallelSort () -metode
Metoden 'parallelSort ()' introduceres i Java 8. Det er en metode til java.util.Arrays klasse. Metoden parallelSort bruges til at sortere en matrix på en parallel måde. Det bruger tilgangen til gaffel og sammenføjning, hvor arrays er forked i mindre enheder, indtil hver enhed er let at håndtere og derefter sorteres individuelt.
Derefter samles de mindre enheder, og hele denne operation sker parallelt. En primær fordel ved denne parallelSort-metode er, at den bruger multithreading og derved gør sortering hurtigere og effektiv.
Metoden parallelSort () har følgende overbelastninger:
public static void parallelSort (Object obj())
Ovenstående metode prototype bruges til at sortere en matrix i stigende rækkefølge.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Ovenstående overbelastning bruges til at sortere elementer i det angivne interval fra 'fraIndex' til 'tilIndex' i arrayet.
Følgende Java-program viser parallelSort-metoden til at sortere en matrix.
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 + ' ')); } }
Produktion:
I ovenstående program sorteres inputmatrixen efter en parallelSort-metode, og output udskrives.
Det næste program sammenligner de to sorteringsmetoder, der leveres af Arrays-klassen, dvs. metoden sort (), som er en lineær sorterings- og parallelSort () -metode. Dette program sammenligner den tid, det tager for hver metode at sortere en matrix . Tiden beregnes for hver iteration.
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(); } } }
Produktion:
Ovenstående output viser sammenligningen af den tid, der er taget med sorterings- og parallelSort-metoderne for hver iteration. Du kan se den klare forskel mellem præstationen af sort og parallelSort-metode med parallelSort-metoden, der er meget bedre end sortering.
Ofte stillede spørgsmål
Q # 1) Hvad er Arrays Stream i Java?
Svar: Dette er stream-metoden i Arrays-klassen. Denne metode stream (T () array) returnerer en sekventiel stream fra arrayet.
Spørgsmål nr. 2) Hvad er Stream () i Java?
Svar: Stream () i Java blev først introduceret i Java 8. Stream-klasse består af API'en, der bruges til behandling af samlingsobjekter inklusive arrays.
Spørgsmål nr. 3) Hvordan fungerer Java Stream?
Svar: API'erne til Java-stream har en mekanisme, der kan konvertere samlinger som ArrayList, Arrays osv. Til stream. De behandler også hvert element af disse strømme parallelt ved hjælp af forskellige tilvejebragte metoder og bestiller resultater.
Spørgsmål nr. 4) Hvad er formålet med MAP-metoden til Stream i Java 8?
Svar: Kortmetoden tilhører klassen java.util.stream.Streams. Kortmetoden anvender en funktion til hvert element i en stream eller kortlægger den til en anden værdi og transformerer den.
Q # 5) Er Stream hurtigere end for Java-loop?
Svar: Ja, især de parallelle strømme. For eksempel, parallelSort-metoden i Arrays-klassen, der bruger parallelle streams, er hurtigere end den sekventielle sorteringsmetode, der leveres af Arrays-klassen.
Konklusion
Streams i Java er en ny funktion inkluderet siden Java 8. Streams giver en streng API, hvis metoder kan bruges på samlinger i Java. I denne vejledning har vi set streammetoder, der fungerer på Java-arrays. Vi har også set de andre funktioner, der blev føjet til Java-arrays i Java 8-udgave.
Den ene er stream, mens den anden er parallelSort-metoden, der sorterer en matrix parallelt. Denne metode er hurtigere end den lineære metodesortering, hvilket var tydeligt i programmet, hvor vi sammenlignede begge metoderne.
Læs også = >> Interfaceændringer i Java 8
=> Besøg her for den eksklusive Java-træningsundervisningsserie.
Anbefalet læsning
- Java datatyper, sløjfer, arrays, switch og påstande
- MongoDB Sort () metode med eksempler
- Java Copy Array: Sådan kopieres / klones en array i Java
- Java Generic Array - Sådan simuleres generiske arrays i Java?
- Flerdimensionelle arrays i Java (2d og 3d arrays i Java)
- Java-interface og abstrakt klasseundervisning med eksempler
- Sådan sorteres en matrix i Java - vejledning med eksempler
- Hvad er statisk nøgleord i Java?