arrays java 8 stream class
Јава 8 је главно издање у историји Јаве. Овај водич објашњава различите промене низова у Јави 8 попут класе токова и паралелног сортирања:
Много нових функција представљено је у овом издању, као што је већ речено у нашем претходном водичу о „Јава 8 карактеристикама“. Научимо о Јава 8 Стреам Цласс и методу паралелног сортирања.
=> Овде припазите на једноставну серију Јава тренинга.
Шта ћете научити:
Низови у Јави 8
Јава8 је представио неколико карактеристика посебно повезаних са низовима.
Садржи:
- Потоци за низове
- Паралелно сортирање
У овом упутству детаљно ћемо размотрити ове две карактеристике Јава 8.
Јава 8 Стреам
Јава 8 је додала класу токова за низове која побољшава читљивост као и ефикасност низова. Претварање низова у стреам такође повећава укупне перформансе програма.
Поред овога, можете да користите и различите методе АПИ-ја Стреам које могу поједноставити мапирање и акције филтрирања на низовима.
Следећа преоптерећења метода могу се користити за претварање низа у ток .
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); } }
Излаз:
Користили смо метод мапе који пружа класа Стреам у горњем програму. Такође смо користили методу сум () која додаје елементе у току.
шта је иоманип у ц ++-у
Јава 8 метода паралелног сортирања ()
Метода “паралелно сортирање ()” представљена је у Јави 8. То је метода класе јава.утил.Арраис. Паралелна метода сортирања користи се за паралелно сортирање низа. Користи приступ форк анд јоин у којем се низови рачвају у мање јединице све док се јединицом не може лако управљати, а затим сортирати појединачно.
Тада се спајају мање јединице и читава ова операција се дешава паралелно. Једна од главних предности ове методе паралелног сортирања је та што користи мултитреадинг, што сортирање чини бржим и ефикаснијим.
Метода параллелСорт () има следећа преоптерећења:
public static void parallelSort (Object obj())
Горњи прототип методе користи се за сортирање низа у растућем редоследу.
public static void parallelSort (Object obj(), int fromIndex, int toIndex)
Горње преоптерећење се користи за сортирање елемената у наведеном опсегу од „одИндек“ до „тоИндек“ у низу.
Следећи Јава програм приказује методу параллелсорт за сортирање низа.
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 + ' ')); } }
Излаз:
У горе наведеном програму, улазни низ се сортира методом паралелног сортирања и исписује се излаз.
Следећи програм упоређује две методе сортирања које пружа класа Арраис, тј. Метода сорт () која је линеарна метода сортирања и параллелСорт (). Овај програм упоређује време које је свакој методи потребно за сортирање низа . Време се израчунава за сваку итерацију.
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(); } } }
Излаз:
Горњи излаз приказује поређење времена које су методе сортирања и паралелног сортирања узеле за сваку итерацију. Можете видети јасну разлику између перформанси методе сортирања и паралелног сортирања са методом паралелног сортирања која је много боља од сортирања.
Често постављана питања
П # 1) Шта је Арраис Стреам у Јави?
Одговор: Ово је стреам метода класе Арраис. Овај ток методе (низ Т ()) враћа секвенцијални ток из низа.
П # 2) Шта је Стреам () на Јави?
Одговор: Стреам () у Јави први пут је представљен у Јави 8. Класа Стреам састоји се од АПИ-ја који се користи за обраду објеката колекције, укључујући низове.
П # 3) Како функционише Јава Стреам?
Одговор: АПИ-ји Јава стреам-а имају механизам који може конвертовати колекције попут АрраиЛист, Арраис итд. У стреам. Такође паралелно обрађују сваки елемент ових токова, користећи различите методе и прослеђују резултате.
П # 4) Која је сврха МАП методе Стреам у Јави 8?
Одговор: Метода мапе припада класи јава.утил.стреам.Стреамс. Метода мапе примењује функцију на сваки елемент тока или је мапира у другу вредност и трансформише.
П # 5) Да ли је Стреам бржи него за Јава петљу?
Одговор: Да, посебно паралелни токови. На пример, метода параллелСорт класе Арраис која користи паралелне токове је бржа од методе секвенцијалног сортирања коју пружа класа Арраис.
Закључак
Стреамови у Јави је нова функција која је укључена од Јаве 8. Стреамови пружају АПИ низа чије се методе могу користити у колекцијама на Јави. У овом упутству видели смо методе струјања које раде на Јава низовима. Такође смо видели и друге функције које су додате Јава пољима у издању Јава 8.
Један од њих је стреам, док је други метод параллелсорт који сортира низ на паралелан начин. Ова метода је бржа од линеарне методе сортирања, што је било видљиво у програму где смо упоредили обе методе.
Такође прочитајте = >> Промене интерфејса у Јави 8
=> Посетите овде за ексклузивну серију лекција за Јава тренинг.
Препоручено читање
- Јава типови података, петље, низови, прекидачи и тврдње
- МонгоДБ метода сортирања () са примерима
- Јава Цопи Арраи: Како копирати / клонирати низ у Јави
- Јава генерички низ - Како симулирати генеричке низове у Јави?
- Мултидимензионални низови у Јави (2д и 3д низови у Јави)
- Јава интерфејс и лекција са апстрактним часовима са примерима
- Како сортирати низ у Јави - Водич са примерима
- Шта је статична кључна реч у Јави?