arrays java 8 stream class
Java 8 była głównym wydaniem w historii języka Java. Ten samouczek wyjaśnia różne zmiany w tablicach w Javie 8, takie jak klasa strumieni i sortowanie równoległe:
Wiele nowych funkcji zostało wprowadzonych w tej wersji, jak już omówiliśmy w naszym poprzednim samouczku dotyczącym „Funkcji Java 8”. Poznajmy klasę strumieniową Java 8 i metodę sortowania równoległego.
=> Obejrzyj serię prostych szkoleń dotyczących języka Java.
Czego się nauczysz:
Tablice w Javie 8
Java8 wprowadziła kilka funkcji szczególnie związanych z tablicami.
Obejmuje:
- Strumienie dla tablic
- Sortowanie równoległe
W tym samouczku szczegółowo omówimy te dwie funkcje języka Java 8.
Java 8 Stream
Java 8 dodała klasę strumieniową dla tablic, która poprawia czytelność, a także wydajność tablic. Konwersja tablic na strumień zwiększa również ogólną wydajność programu.
Oprócz tego możesz również użyć różnych metod Stream API, które mogą uprościć mapowanie i akcje filtrowania na tablicach.
Następujące przeciążenia metody mogą służyć do konwertowania tablicy na strumień .
Stream stream(T() array) IntStream stream(int() array) LongStream stream(long() array) DoubleStream stream(double() array)
Poniższy program przedstawia implementację używania strumieni z tablicami. Ten program przedstawia porównanie podejścia iteracyjnego i podejścia strumieniowego. Później suma elementów w tablicy jest obliczana przy użyciu iteracji i strumieni, a następnie obliczana jest średnia.
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 + ' ')); } }
Wynik:
Powyższe dane wyjściowe pokazują średnią iterację i podejście do strumieni. Ponieważ elementów jest mniej, średnia jest taka sama, ale wraz ze wzrostem elementów w tablicy podejście iteracyjne staje się wolniejsze.
Następny przykład programowania pokazuje, jak tablica jest konwertowana na strumień liczb całkowitych, a następnie przy użyciu metody map strumienia w celu zamapowania elementów tablicy na wartości losowe, a następnie dodania tych elementów. W takim razie program wypisuje sumę wszystkich elementów w strumieniu liczb całkowitych .
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); } }
Wynik:
Użyliśmy metody map, która jest udostępniana przez klasę Stream w powyższym programie. Użyliśmy również metody sum (), która dodaje elementy do strumienia.
jakie są najlepsze aplikacje wirtualnej rzeczywistości
Metoda parallelSort () języka Java 8
Metoda „parallelSort ()” została wprowadzona w Javie 8. Jest to metoda klasy java.util.Arrays. Metoda parallelSort służy do sortowania tablicy w sposób równoległy. Wykorzystuje podejście rozwidlania i łączenia, w którym tablice są rozwidlane na mniejsze jednostki, aż każda jednostka będzie łatwa do zarządzania, a następnie sortowana indywidualnie.
Następnie mniejsze jednostki są łączone i cała ta operacja odbywa się równolegle. Jedną z głównych zalet tej metody parallelSort jest to, że wykorzystuje wielowątkowość, dzięki czemu sortowanie jest szybsze i wydajniejsze.
Metoda parallelSort () ma następujące przeciążenia:
public static void parallelSort (Object obj())
Powyższy prototyp metody służy do sortowania tablicy w porządku rosnącym.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Powyższe przeciążenie służy do sortowania elementów w określonym zakresie od „fromIndex” do „toIndex” w tablicy.
Poniższy program w języku Java demonstruje metodę parallelSort do sortowania tablicy.
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 + ' ')); } }
Wynik:
W powyższym programie tablica wejściowa jest sortowana przy użyciu metody parallelSort i drukowany jest wynik.
Następny program porównuje dwie metody sortowania udostępnione przez klasę Arrays, tj. Metodę sort (), która jest sortowaniem liniowym, oraz metodę parallelSort (). Ten program porównuje czas potrzebny na posortowanie tablicy przez każdą metodę . Czas jest obliczany dla każdej iteracji.
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(); } } }
Wynik:
Powyższe dane wyjściowe pokazują porównanie czasu zajmowanego przez metody sort i parallelSort dla każdej iteracji. Możesz zobaczyć wyraźną różnicę między wydajnością metody sort i parallelSort, przy czym metoda parallelSort jest znacznie lepsza niż sort.
Często Zadawane Pytania
Pytanie 1) Co to jest strumień tablic w Javie?
Odpowiedź: To jest metoda strumieniowa klasy Arrays. Ta metoda stream (tablica T ()) zwraca sekwencyjny strumień z tablicy.
Pytanie 2) Co to jest Stream () w Javie?
Odpowiedź: Stream () w Javie została po raz pierwszy wprowadzona w Javie 8. Klasa Stream składa się z API używanego do przetwarzania obiektów kolekcji, w tym tablic.
Pytanie 3) Jak działa strumień Java?
Odpowiedź: Interfejsy API strumienia Java mają mechanizm, który może konwertować zbiory, takie jak ArrayList, Arrays itp., Na strumień. Przetwarzają również każdy element tych strumieni równolegle przy użyciu różnych dostępnych metod i przekazują wyniki.
P # 4) Jaki jest cel metody MAP w Stream w Javie 8?
Odpowiedź: Metoda map należy do klasy java.util.stream.Streams. Metoda map stosuje funkcję do każdego elementu strumienia lub mapuje ją na inną wartość i przekształca ją.
Pytanie 5) Czy usługa Stream jest szybsza niż w przypadku pętli Java?
Odpowiedź: Tak, zwłaszcza równoległe strumienie. Na przykład, Metoda parallelSort klasy Arrays, która używa strumieni równoległych, jest szybsza niż metoda sortowania sekwencyjnego udostępniana przez klasę Arrays.
Wniosek
Strumienie w Javie to nowa funkcja zawarta od czasu Java 8. Strumienie zapewniają ciąg API, którego metody mogą być używane w kolekcjach w Javie. W tym samouczku widzieliśmy metody strumieniowe, które działają na tablicach Java. Widzieliśmy także inne funkcje, które zostały dodane do tablic Java w edycji Java 8.
Jedna z nich to stream, a druga to metoda parallelSort, która sortuje tablicę w sposób równoległy. Ta metoda jest szybsza niż sortowanie metodą liniową, co było widoczne w programie, w którym porównaliśmy obie metody.
Przeczytaj także = >> Zmiany w interfejsie w Javie 8
=> Odwiedź tutaj ekskluzywną serię samouczków szkoleniowych Java.
rekomendowane lektury
- Java DataTypes, pętle, tablice, przełącznik i asercje
- Metoda MongoDB Sort () z przykładami
- Java Copy Array: Jak skopiować / sklonować tablicę w Javie
- Tablica ogólna Java - jak symulować tablice ogólne w Javie?
- Tablice wielowymiarowe w Javie (tablice 2D i 3D w Javie)
- Interfejs Java i samouczek klasy abstrakcyjnej z przykładami
- Jak posortować tablicę w Javie - samouczek z przykładami
- Co to jest statyczne słowo kluczowe w Javie?