Све што треба да знате о току у Јави



Овај чланак ће вас упознати са Стреам ин Јава пакетом који је недавно представљен на Јави и детаљно објаснити шта он може учинити.

Нови додатни пакет у Јави 8, познат као јава.утил.стреам је додат за корисницима за ефикасно искуство програмирања. Ток се може дефинисати као низ објеката који подржавају више метода. У овом чланку бисмо истраживали Стреам у

Следећи путокази ће бити обухваћени овим чланом,





Пре него што започнемо са овим чланком о Стреам Ин Јава, погледајмо неке важне функције,

повезана листа у ц програму

Стреам у Јави: Карактеристике

  • Ток није структура података и не чува елементе. Колекције, низови или И / О канали одакле узимају улазне податке.
  • Извор тока остаје неизмењен након извођења операција на њему. На пример, филтрирањем тока једноставно се ствара нови ток без филтрираних елемената, уместо да се модификује оригинални ток.
  • Операције агрегирања као што су филтрирање, смањивање, подударање, проналажење итд. Подржани су у току.
  • Лењост се може сматрати особином тока, јер он процењује кодове само када је то потребно.
  • Посета елемената присутних у току може се обавити само једном током живота потока. Мора се створити нови ток да би се поново посетили исти елементи присутни у извору.

Настављамо са овим чланком о Стреаму на Јави



Генерисање токова

Потоци се могу генерисати следећим методама:

  • ток () - Враћен је секвенцијални ток.Збиркасе сматра извором.
  • параллелСтреам () - Враћа се паралелни ток. Збирка се сматра извором.
Листа стрингова = Арраис.асЛист ('Здраво', '', 'Здраво', 'Хола', 'Боњоур', '', 'Намасте') Листа филтрирана = стрингс.стреам (). Филтер (стринг ->! Стринг. исЕмпти ()). цоллецт (Цоллецторс.тоЛист ())

Настављамо са овим чланком о Стреаму на Јави

Операције на потоцима:

Интермедиате Оператионс:

Мапа



Елементи присутни у колекцији могу се пресликати на друге објекте према предикату који је прослеђен као аргумент. Следећи пример се користи за приказ јединствених квадрата бројева методом мапе.

Листа нум = Арраис.асЛист (5,4,4,2,3,3) Квадрати листе = нум.стреам (). Мап (и -> и * и) .дистинцт (). Цоллецт (Цоллецторс.тоЛист ())

филтер

Елементи се овом методом могу уклонити на основу критеријума.

Име листе = Арраис.асЛист ('Субота', 'Недеља', 'Четвртак') Листа рес = наме.стреам (). Филтер (с-> с.стартсВитх ('С')). Цоллецт (Цоллецторс.тоЛист () )

сортирано

Ток се може сортирати помоћу ове методе.

Име листе = Арраис.асЛист ('Субота', 'Недеља', 'Четвртак') Листа рес = наме.стреам (). Сортед (). Цоллецт (Цоллецторс.тоЛист ())

Стреам ин Јава: Терминал Оператионс:

сакупљати

Резултат обраде на елементима тока може се комбиновати помоћу операције сакупљања.

Листа нум = Арраис.асЛист (4,3,2,5,6) Постави рес = нум.стреам (). Мап (и-> и * и) .цоллецт (Цоллецторс.тоСет ())

за сваки

Овај метод се користи за итерацију кроз сваки елемент присутан у току.

Листа нум = Арраис.асЛист (4,3,2,5) нум.стреам (). Мап (к-> к * к) .форЕацх (и-> Систем.оут.принтлн (и))

смањити

Елементи тока се овом методом могу свести на једну вредност.

Листа нум = Арраис.асЛист (4,3,2,5) инт евен = нум.стреам (). Филтер (к-> к% 2 == 0) .редуце (0, (рес, и) -> рес + и)

Променљивој рес првобитно се додељује вредност 0 и додаје јој се и.

Настављамо са овим чланком о Стреаму на Јави

Филтрирање

Код се може филтрирати методом стрима. У следећем примеру цена инструмената се филтрира.

импорт јава.утил. * импорт јава.утил.стреам.Цоллецторс цласс Инструмент {инт нум Стринг наме флоат прице публиц Инструмент (инт нум, Стринг наме, флоат прице) {тхис.нум = нум тхис.наме = наме тхис.прице = цена}} тест јавне класе {публиц статиц воид маин (Стринг [] аргс) {Лист инструментсЛист = нев АрраиЛист () // Додавање производа инструментсЛист.адд (нев Инструмент (1, 'Гуитар', 15000ф)) инструментсЛист.адд (ново Инструмент (2, 'Пиано', 18000ф)) инструментсЛист.адд (нови Инструмент (3, 'Флаута', 15000ф)) инструментсЛист.адд (нови Инструмент (4, 'Бубњеви', 48000ф)) инструментсЛист.адд (нови Инструмент ( 5, 'Укулеле', 32000ф)) Листа ИнструментПрицеЛист2 = инструментсЛист.стреам () .филтер (п -> п.прице> 30000) // филтрирање података .мап (п-> п.прице) // преузимање цене .цоллецт ( Цоллецторс.тоЛист ()) // прикупљање као листа Систем.оут.принтлн (ИнструментПрицеЛист2)}}
 Излаз: 

[48000,0, 32000,0]

Настављамо са овим чланком о Стреаму на Јави

Итерација:

Итерација се може извести коришћењем тока у јави.

импорт јава.утил.стреам. * тест јавне класе {публиц статиц воид маин (Стринг [] аргс) {Стреам.итерате (1, елемент-> елемент + 1) .филтер (елемент-> елемент% 4 == 0). лимит (6) .форЕацх (Систем.оут :: принтлн)}}

Излаз:

4

8

12

како се користи визуелни студио

16

двадесет

24

Погледајмо још један пример да бисмо ефикасније разумели концепт Стреам у јави.

Пример:

како се користе семафори у јави
импорт јава.утил. * импорт јава.утил.стреам. * тест јавне класе {публиц статиц воид маин (Стринг аргс []) {// стварање листе целих бројева Листа нум = Арраис.асЛист (6,7,8,9 ) // коришћењем методе мапе Листа квадрата = нум.стреам (). мап (и -> и * и). цоллецт (Цоллецторс.тоЛист ()) Систем.оут.принтлн (квадрати) // стварање листе Стринг Лист даис = Арраис.асЛист ('петак', 'субота', 'недеља') // метода филтрирања Листа рес = даис .стреам (). филтер (с-> с.стартсВитх ('С')). цоллецт (Цоллецторс.тоЛист ()) Систем.оут.принтлн (рес) // сортирана метода Листа дисплаи = даис.стреам (). сортед (). цоллецт (Цоллецторс.тоЛист ()) Систем.оут.принтлн (дисплаи) / / стварање листе целих бројева Листа број = Арраис.асЛист (6,9,5,7,1) // метода прикупљања враћа скуп Сет скСет = нумбер.стреам (). мап (и-> и * и) .цоллецт (Цоллецторс.тоСет ()) Систем.оут.принтлн (скСет) // форЕацх метода нум.стреам (). Мап (и-> и * и) .форЕацх (к-> Систем.оут.принтлн (к)) / / смањи метод инт евен = нум.стреам (). филтер (к-> к% 2 == 0) .редуце (0, (ресулт, и) -> ресулт + и) Систем.оут.принтлн (евен)}}

Излаз:

[36, 49, 64, 81]

[Субота Недеља]

[Петак Субота Недеља]

[81, 49, 1, 36, 25]

36

49

64

81

14

Потоци омогућавају кориснику ефикасно извршавање операција на елементима.

Тако смо дошли до краја овог чланка о „Стреам ин Јава“. Ако желите да сазнате више, погледајте Јава Траининг од Едуреке, поуздане компаније за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога и јавићемо вам се што је пре могуће.