arrays java 8 stream class
Το Java 8 υπήρξε σημαντική κυκλοφορία στην ιστορία της Java. Αυτό το σεμινάριο εξηγεί διάφορες αλλαγές στις συστοιχίες στο Java 8, όπως τάξη ροών και παράλληλη ταξινόμηση:
Πολλές νέες δυνατότητες εισήχθησαν σε αυτήν την έκδοση, όπως ήδη συζητήθηκε στο προηγούμενο σεμινάριό μας σχετικά με το 'Java 8 Features' Ας μάθουμε για το Java 8 Stream Class και τη μέθοδο παράλληλης ταξινόμησης.
=> Παρακολουθήστε εδώ την απλή εκπαίδευση Java.
Τι θα μάθετε:
Πίνακες σε Java 8
Το Java8 παρουσίασε μερικά χαρακτηριστικά που σχετίζονται ειδικά με πίνακες.
Περιλαμβάνει:
- Ροές για συστοιχίες
- Παράλληλη ταξινόμηση
Σε αυτό το σεμινάριο, θα συζητήσουμε λεπτομερώς αυτά τα δύο χαρακτηριστικά του Java 8.
Ροή Java 8
Το Java 8 έχει προσθέσει μια κλάση ροής για συστοιχίες που βελτιώνει την αναγνωσιμότητα καθώς και την αποτελεσματικότητα των συστοιχιών. Η μετατροπή συστοιχιών σε ροή αυξάνει επίσης τη συνολική απόδοση του προγράμματος.
Εκτός από αυτό, μπορείτε επίσης να χρησιμοποιήσετε τις διάφορες μεθόδους Stream API που μπορούν να απλοποιήσουν τη χαρτογράφηση και το φιλτράρισμα ενεργειών σε πίνακες.
Η ακόλουθη μέθοδος υπερφόρτωσης μπορεί να χρησιμοποιηθεί για τη μετατροπή ενός πίνακα σε μια ροή .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)Το παρακάτω πρόγραμμα δείχνει την εφαρμογή της χρήσης ροών με πίνακες. Αυτό το πρόγραμμα δείχνει μια σύγκριση της επαναληπτικής προσέγγισης και της ροής. Αργότερα, το άθροισμα των στοιχείων στον πίνακα υπολογίζεται χρησιμοποιώντας την επανάληψη και τις ροές και υπολογίζεται ο μέσος όρος.
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 + ' ')); } } Παραγωγή:

Η παραπάνω έξοδος δείχνει τη μέση προσέγγιση επανάληψης και ροών. Καθώς τα στοιχεία είναι λιγότερα, ο μέσος όρος είναι ο ίδιος, αλλά καθώς τα στοιχεία στον πίνακα αυξάνονται, η επαναληπτική προσέγγιση γίνεται πιο αργή.
Το επόμενο παράδειγμα προγραμματισμού δείχνει πώς ένας πίνακας μετατρέπεται σε ακέραια ροή και στη συνέχεια χρησιμοποιώντας τη μέθοδο χάρτη της ροής για να χαρτογραφήσει στοιχεία του πίνακα σε τυχαίες τιμές και στη συνέχεια να προσθέσει αυτά τα στοιχεία. Το πρόγραμμα τότε εκτυπώνει το άθροισμα όλων των στοιχείων στην ακέραια ροή .
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); } } Παραγωγή:

Έχουμε χρησιμοποιήσει τη μέθοδο χάρτη που παρέχεται από την τάξη Ροή στο παραπάνω πρόγραμμα. Χρησιμοποιήσαμε επίσης τη μέθοδο sum () που προσθέτει τα στοιχεία στη ροή.
πώς να χρησιμοποιήσετε ένα αρχείο βάζου
Μέθοδος Java 8 parallelSort ()
Η μέθοδος 'parallelSort ()' εισάγεται στην Java 8. Είναι μια μέθοδος της κλάσης java.util.Arrays. Η μέθοδος parallelSort χρησιμοποιείται για την ταξινόμηση ενός πίνακα με παράλληλο τρόπο. Χρησιμοποιεί την προσέγγιση fork and join στην οποία οι πίνακες διαμορφώνονται σε μικρότερες μονάδες έως ότου κάθε μονάδα είναι εύκολα διαχειρίσιμη και στη συνέχεια ταξινομείται ξεχωριστά.
Στη συνέχεια, οι μικρότερες μονάδες ενώνονται και ολόκληρη αυτή η λειτουργία γίνεται παράλληλα. Ένα βασικό πλεονέκτημα αυτής της μεθόδου parallelSort είναι ότι χρησιμοποιεί multithreading καθιστώντας έτσι την ταξινόμηση πιο γρήγορη και αποτελεσματική.
Η μέθοδος parallelSort () έχει τις ακόλουθες υπερφορτώσεις:
public static void parallelSort (Object obj())Το παραπάνω πρωτότυπο μεθόδου χρησιμοποιείται για την ταξινόμηση ενός πίνακα σε αύξουσα σειρά.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)Η παραπάνω υπερφόρτωση χρησιμοποιείται για την ταξινόμηση στοιχείων στο καθορισμένο εύρος από «fromIndex» έως «toIndex» στον πίνακα.
Το ακόλουθο πρόγραμμα Java δείχνει τη μέθοδο parallelSort για ταξινόμηση ενός πίνακα.
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 + ' ')); } } Παραγωγή:

Στο παραπάνω πρόγραμμα, ο πίνακας εισόδου ταξινομείται χρησιμοποιώντας μια μέθοδο parallelSort και εκτυπώνεται η έξοδος.
Το επόμενο πρόγραμμα συγκρίνει τις δύο μεθόδους ταξινόμησης που παρέχονται από την κλάση Arrays, δηλαδή τη μέθοδο ταξινόμησης () που είναι μια μέθοδος γραμμικής ταξινόμησης και παράλληλης ταξινόμησης (). Αυτό το πρόγραμμα συγκρίνει το χρόνο που χρειάζεται κάθε μέθοδο για την ταξινόμηση ενός πίνακα . Ο χρόνος υπολογίζεται για κάθε επανάληψη.
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(); } } } Παραγωγή:

Η παραπάνω έξοδος δείχνει τη σύγκριση του χρόνου που απαιτείται από τις μεθόδους sort και parallelSort για κάθε επανάληψη. Μπορείτε να δείτε τη σαφή διαφορά μεταξύ της απόδοσης της μεθόδου ταξινόμησης και της παράλληλης ταξινόμησης με τη μέθοδο παράλληλου Ταξιδιού πολύ καλύτερα από την ταξινόμηση.
Συχνές Ερωτήσεις
Q # 1) Τι είναι το Arrays Stream στην Java;
Απάντηση: Αυτή είναι η μέθοδος ροής της κατηγορίας Arrays. Αυτή η ροή μεθόδου (πίνακας T ()) επιστρέφει μια διαδοχική ροή από τον πίνακα.
Q # 2) Τι είναι το Stream () στην Java;
Απάντηση: Η ροή () στην Java παρουσιάστηκε για πρώτη φορά στην Java 8. Η κλάση ροής αποτελείται από το API που χρησιμοποιείται για την επεξεργασία αντικειμένων συλλογής, συμπεριλαμβανομένων των συστοιχιών.
Q # 3) Πώς λειτουργεί το Java Stream;
Απάντηση: Τα API της ροής Java έχουν έναν μηχανισμό που μπορεί να μετατρέψει συλλογές όπως ArrayList, Arrays κ.λπ. σε ροή. Επεξεργάζονται επίσης κάθε στοιχείο αυτών των ροών παράλληλα χρησιμοποιώντας διάφορες μεθόδους που παρέχονται και περνούν αποτελέσματα.
Q # 4) Ποιος είναι ο σκοπός της μεθόδου MAP της ροής στο Java 8;
Απάντηση: Η μέθοδος χάρτη ανήκει στην κλάση java.util.stream.Streams. Η μέθοδος χάρτη εφαρμόζει μια συνάρτηση σε κάθε στοιχείο μιας ροής ή την αντιστοιχεί σε διαφορετική τιμή και τη μετατρέπει.
Q # 5) Είναι η ροή πιο γρήγορη από ό, τι για το loop Java;
Απάντηση: Ναι, ειδικά οι παράλληλες ροές. Για παράδειγμα, η μέθοδος parallelSort της κλάσης Arrays που χρησιμοποιεί παράλληλες ροές είναι ταχύτερη από τη μέθοδο διαδοχικής ταξινόμησης που παρέχεται από την κλάση Arrays.
συμπέρασμα
Οι ροές στην Java είναι μια νέα δυνατότητα που περιλαμβάνεται από την Java 8. Οι ροές παρέχουν μια συμβολοσειρά API των οποίων οι μέθοδοι μπορούν να χρησιμοποιηθούν σε συλλογές στην Java. Σε αυτό το σεμινάριο, έχουμε δει μεθόδους ροής που λειτουργούν σε πίνακες Java. Έχουμε επίσης δει τα άλλα χαρακτηριστικά που προστέθηκαν σε πίνακες Java στην έκδοση Java 8.
Το ένα από αυτά είναι ροή, ενώ το άλλο είναι η μέθοδος parallelSort που ταξινομεί έναν πίνακα με παράλληλο τρόπο. Αυτή η μέθοδος είναι ταχύτερη από τη γραμμική μέθοδο, η οποία ήταν εμφανής στο πρόγραμμα όπου συγκρίναμε και τις δύο μεθόδους.
Διαβάστε επίσης = >> Αλλαγές διεπαφής στο Java 8
=> Επισκεφτείτε εδώ για την αποκλειστική σειρά εκπαιδευτικών εκμάθησης Java.
Συνιστώμενη ανάγνωση
- Java DataTypes, Loops, Arrays, Switch και Assertions
- MongoDB Sort () Μέθοδος με παραδείγματα
- Java Copy Array: Πώς να αντιγράψετε / κλωνοποιήσετε μια σειρά στην Java
- Java Generic Array - Πώς να προσομοιώσετε γενικές συστοιχίες στην Java;
- Πολυδιάστατες συστοιχίες σε Java (2η και τρισδιάστατη σειρά σε Java)
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Πώς να ταξινομήσετε μια σειρά σε Java - Tutorial με παραδείγματα
- Τι είναι η στατική λέξη-κλειδί στην Java;