arrays java 8 stream class
Java 8 war eine wichtige Version in der Geschichte von Java. In diesem Tutorial werden verschiedene Änderungen an Arrays in Java 8 wie Streams Class und Parallel Sorting erläutert:
In dieser Version wurden viele neue Funktionen eingeführt, wie bereits in unserem vorherigen Tutorial zu „Java 8-Funktionen“ erläutert. Informieren Sie sich über die Java 8-Stream-Klasse und die parallele Sortiermethode.
=> Sehen Sie sich hier die einfache Java-Schulungsreihe an.
Was du lernen wirst:
Arrays in Java 8
Java8 hat einige Funktionen speziell für Arrays eingeführt.
Es enthält:
- Streams für Arrays
- Parallele Sortierung
In diesem Tutorial werden diese beiden Funktionen von Java 8 ausführlich erläutert.
Java 8 Stream
Java 8 hat eine Stream-Klasse für Arrays hinzugefügt, die die Lesbarkeit sowie die Effizienz von Arrays verbessert. Das Konvertieren von Arrays in Streams erhöht auch die Gesamtleistung des Programms.
Darüber hinaus können Sie auch die verschiedenen Stream-API-Methoden verwenden, die die Zuordnung vereinfachen und Aktionen für Arrays filtern.
Die folgenden Methodenüberladungen können verwendet werden, um ein Array in einen Stream zu konvertieren .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
Das folgende Programm zeigt die Implementierung der Verwendung von Streams mit Arrays. Dieses Programm zeigt einen Vergleich des iterativen Ansatzes und des Streams-Ansatzes. Später wird die Summe der Elemente im Array mithilfe von Iteration und Streams berechnet und der Durchschnitt berechnet.
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 + ' ')); } }
Ausgabe:
Die obige Ausgabe zeigt den durchschnittlichen Iterations- und Stream-Ansatz. Da die Elemente kleiner sind, ist der Durchschnitt derselbe, aber wenn die Elemente im Array zunehmen, wird der iterative Ansatz langsamer.
Das nächste Programmierbeispiel zeigt, wie ein Array in einen ganzzahligen Stream konvertiert wird und dann mithilfe der Zuordnungsmethode des Streams Elemente des Arrays zufälligen Werten zugeordnet und diese Elemente dann hinzugefügt werden. Das Programm dann Gibt die Summe aller Elemente im Integer-Stream aus .
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); } }
Ausgabe:
Wir haben die Map-Methode verwendet, die von der Stream-Klasse im obigen Programm bereitgestellt wird. Wir haben auch die sum () -Methode verwendet, mit der die Elemente im Stream hinzugefügt werden.
Java erstellt ein Array von Objekten
Java 8 parallelSort () -Methode
Die Methode „parallelSort ()“ wird in Java 8 eingeführt. Es handelt sich um eine Methode der Klasse java.util.Arrays. Die parallelSort-Methode wird verwendet, um ein Array parallel zu sortieren. Es verwendet den Fork-and-Join-Ansatz, bei dem die Arrays in kleinere Einheiten aufgeteilt werden, bis jede Einheit leicht zu verwalten ist, und dann einzeln sortiert werden.
Dann werden die kleineren Einheiten zusammengefügt und dieser gesamte Vorgang erfolgt parallel. Ein Hauptvorteil dieser parallelSort-Methode besteht darin, dass Multithreading verwendet wird, wodurch das Sortieren schneller und effizienter wird.
Die parallelSort () -Methode weist die folgenden Überladungen auf:
public static void parallelSort (Object obj())
Der obige Methodenprototyp wird verwendet, um ein Array in aufsteigender Reihenfolge zu sortieren.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Die obige Überladung wird verwendet, um Elemente im angegebenen Bereich von 'fromIndex' bis 'toIndex' im Array zu sortieren.
Das folgende Java-Programm demonstriert die parallelSort-Methode zum Sortieren eines Arrays.
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 + ' ')); } }
Ausgabe:
Im obigen Programm wird das Eingabearray mit einer parallelSort-Methode sortiert und die Ausgabe gedruckt.
Das nächste Programm vergleicht die beiden von der Arrays-Klasse bereitgestellten Sortiermethoden, d. H. Die sort () -Methode, bei der es sich um eine lineare Sortier- und eine parallelSort () -Methode handelt. Dieses Programm vergleicht die Zeit, die jede Methode zum Sortieren eines Arrays benötigt . Die Zeit wird für jede Iteration berechnet.
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(); } } }
Ausgabe:
Die obige Ausgabe zeigt den Vergleich der Zeit, die die Methoden sort und parallelSort für jede Iteration benötigen. Sie können den deutlichen Unterschied zwischen der Leistung der Sortier- und der ParallelSort-Methode erkennen, wobei die ParallelSort-Methodenverkleidung viel besser ist als die Sortierung.
Häufig gestellte Fragen
F # 1) Was ist Arrays Stream in Java?
Antworten: Dies ist die Stream-Methode der Arrays-Klasse. Dieser Methodenstrom (T () -Array) gibt einen sequentiellen Stream vom Array zurück.
F # 2) Was ist Stream () in Java?
Antworten: Stream () in Java wurde erstmals in Java 8 eingeführt. Die Stream-Klasse besteht aus der API, die zum Verarbeiten von Sammlungsobjekten einschließlich Arrays verwendet wird.
F # 3) Wie funktioniert Java Stream?
Antworten: Die APIs von Java Stream verfügen über einen Mechanismus, mit dem Sammlungen wie ArrayList, Arrays usw. in Stream konvertiert werden können. Sie verarbeiten auch jedes Element dieser Streams parallel mit verschiedenen bereitgestellten Methoden und übergeben die Ergebnisse.
F # 4) Was ist der Zweck der MAP-Methode von Stream in Java 8?
Antworten: Die Map-Methode gehört zur Klasse java.util.stream.Streams. Die Zuordnungsmethode wendet eine Funktion auf jedes Element eines Streams an oder ordnet es einem anderen Wert zu und transformiert es.
F # 5) Ist Stream schneller als für Java-Schleife?
Antworten: Ja, besonders die parallelen Streams. Zum Beispiel, Die parallelSort-Methode der Arrays-Klasse, die parallele Streams verwendet, ist schneller als die von der Arrays-Klasse bereitgestellte sequentielle Sortiermethode.
Fazit
Streams in Java sind eine neue Funktion, die seit Java 8 enthalten ist. Streams bieten eine Zeichenfolgen-API, deren Methoden für Sammlungen in Java verwendet werden können. In diesem Tutorial haben wir Stream-Methoden gesehen, die auf Java-Arrays funktionieren. Wir haben auch die anderen Funktionen gesehen, die Java-Arrays in Java 8 Edition hinzugefügt wurden.
Eine davon ist Stream, während die andere die parallelSort-Methode ist, die ein Array parallel sortiert. Diese Methode ist schneller als die lineare Methodensortierung, die in dem Programm deutlich wurde, in dem wir beide Methoden verglichen haben.
Lesen Sie auch = >> Schnittstellenänderungen in Java 8
=> Besuchen Sie hier für die exklusive Java Training Tutorial-Reihe.
Literatur-Empfehlungen
- Java DataTypes, Loops, Arrays, Switch und Assertions
- MongoDB Sort () -Methode mit Beispielen
- Java Copy Array: Kopieren / Klonen eines Arrays in Java
- Java Generic Array - Wie simuliere ich generische Arrays in Java?
- Mehrdimensionale Arrays in Java (2D- und 3D-Arrays in Java)
- Java Interface und Abstract Class Tutorial mit Beispielen
- So sortieren Sie ein Array in Java - Tutorial mit Beispielen
- Was ist ein statisches Schlüsselwort in Java?