AKCIA! CELOŽIVOTNÉ predplatné so zľavou 50%, nezmeškaj to!
Zisti viac
Späť na blog
Tipy a triky

Lambda výrazy v Jave - časť I.

Skillmea
21.07.2019
7 minút čítania
Lambda výrazy v Jave - časť I.
V tomto a v nasledujúcich článkoch sa pozrieme na zúbok lambda výrazom. Budeme si ich vysvetľovať úplne dopodrobna, aby sme ich pochopili a využívali. Obsahovo sa zameriame na tieto oblasti:
  1. porozumenie lambda výrazom,
  2. použitie lambda výrazov,
  3. funkcionálne rozhrania (functional intefaces),
  4. referencie metód (method references),
  5. vylepšenia na kolekciách.

Prečo použiť lambda výrazy? Povieme si pár odrážok, prečo ich používať. 
  • povoľuje použiť takzvané funkcionálne programovanie, čo je doteraz niečo, povedal by som čudné, keďže Java je objektovo orientovaný jazyk,
  • sprehľadňujú kód, lepšia čitateľnosť v niektorých prípadoch, kde by sme použili viacero zbytočných riadkov, aby sme napísali to isté.

Možno sa zamýšľaš, prečo používať funkcionálne programovanie v jazyku, ktorý je objektovo orientovaný. Už nie je OOP tak dobré? Už zanikne? Nie, nezanikne a java je a myslím si, že stále bude objektovo orientovaný jazyk. Toto funkcionálne programovanie ber len ako ďalší nástroj, ktorý ako vývojár máš vo svojej ruke. 
Pri OOP sú vývojári zvyknutí rozmýšľať v podstatných menách, v objektoch, v triedach. Napríklad Pes šteká. Štekanie je súčasťou Psa. Tým pádom metóda, ktorá bude zabezpečovať psie štekanie, je súčasťou triedy Pes. 
Niekedy ale potrebujem kus kódu, metódu – alebo inak povedané funkciu, ktorá nepatrí do žiadnej triedy špeciálne. 

Podsunutie chovania do metódy

Uvažuj nad tým, že máš metódu, ktorá na konzolu vypíše nejaký text. Napríklad staré známe Hello World. Pre tento účel by sme si vytvorili triedu, ktorej by bola metóda na vypísanie Hello Word. Túto metódu by sme potom vypísali na konzolu v main metóde. Príklad v idea Lambda2. 

Našou úlohou bude teraz prerobiť tento kód tak, aby som danej metóde podsunul správanie a vo vnútri tej metódy sa len vykoná to správanie. Ukážme si na príklade. 

Takže sme spravili, čo sme chceli. Do metódy sme podsunuli správanie ako argument a potom sme ho vykonali.  Ale nie tak presne. Do metódy sme podsunuli niečo, čo má v sebe správanie. Podsunuli sme implementáciu rozhrania, ktorá má v sebe metódu, ktorá vykoná očakávané správanie sa. 

Práve tomuto chcú lambda výrazy zabrániť. Chcú zabrániť tomu, aby sme podsúvali objekty, ale chcú, aby sme podsúvali funkcie. 
Namiesto tohto: 
public void printHelloWord(IHelloWord helloWord){ 
     helloWord.sayHello(); 
 }

chceme do metódy vložiť nejakú akciu, nejakú funkciu. Tento prístup umožňuje správať sa k funkciám ako k hodnotám.
public void printHelloWord(funkcia){ 
     funkcia();
 }

Ak napíšem String meno = “Jaro”;  tak som hodnotu Jaro pridelil do premennej meno. Teraz sme ale načrtli, že do nejakej premennej by sme chceli vložiť blok kódu, ktorý prezentuje našu funkciu. Takže blok kód by sa stal hodnotou a tá by sa dala vložiť do premennej. Takže tam, kde používam danú premennú, tak tam používam aj danú funkciu, ktorá je v nej.  
Pre predstavivosť, chceme dosiahnuť toto: 
premennaSFunkciou = public void sayHello() {
     System.out.println("HelloWord impls");
 } 
Toto je možné pomocou lambda výrazov. Najprv sa ale pozrime na tento kus kódu a povedzme si, čo nepotrebujeme:
  • public – označuje mi, či je niečo verejne dostupné mimo triedy, dáva zmysel v kontexte triedy, tu ale prideľujeme do premennej, tak to nepotrebujeme, lebo funkcia je dostupná tomu, kto pracuje s danou premennou.
premennaSFunkciou = void sayHello() {
     System.out.println("HelloWord impls");
 }

  • názov sayHello = ak pristupujeme k hodnote, ktorá je v premennej, tak ku nej pristupujme názvom premennej, v našom prípade je názov premennej premennaSFunkcou, takže ani druhé meno nepotrebujeme.
premennaSFunkciou = void () {
     System.out.println("HelloWord impls");
 }

  • typ návratovej hodnoty – pri písaní lambda výrazov nemusím písať, aký je návratový typ, prekladač vie, podľa vnútra metódy, čo sa vracia.
premennaSFunkciou = () {
     System.out.println("HelloWord impls");
 }

Toto ale ešte nie je labmda výraz. Ak napíšem šípku (pomlčka - a znamienko väčšie >) medzi zátvorky a blok kódu, tak vtedy sme vytvorili labmda výraz. 
premennaSFunkciou = () -> {
     System.out.println("HelloWord impls");
 } 
Ak metóda obsahuje len jeden riadok, teda nie viac riadkov, tak je možné ďalej upraviť tento výraz a to tak, že odstránime zložené zátvorky. Ak je viac riadkov, tak zložené zátvorky ponecháme. 
premennaSFunkciou = () -> System.out.println("HelloWord impls");

Teraz si už vieme predstaviť, spraviť, to, že pošleme funkciu ako parameter metódy a vo vnútri spustíme danú funkciu. 
public void printHelloWord(------){
     -----(); 
 }
Do metódy môžeme vložiť ako argument pri volaní metódy priamo lambda výraz. 
printHelloWord(() -> System.out.println("HelloWord impls")){

Príklady

Napíš metódu, ktorá zoberie ako parameter číslo a vynásobí ho 5timi. 

nasobokPiatichFunkcia = public int nasobokPiatich(int i){
     return i*5;
 }
Prepíšeme to na lambda výraz, vyškrtám všetko, čo nepotrebujem. Teda názov, návratovú hodnotu a modifikátor prístupu. 
nasobokPiatichFunkcia = (int i){
     return i*5;
 }
Napíšeme tam šípku a keďže riadok je tam len jeden, tak vieme odmazať kučeravé zátvorky. 
nasobokPiatichFunkcia = (int i) -> return i*5;
Tu máme ďalšiu pomôcku, alebo možnosť škrtať. Keďže java kompilátor pozná vnútro metódy a vie, čo má vrátiť, môžem vymazať aj return. 
nasobokPiatichFunkcia = (int i) -> i*5;
Keď máme jednoriadkový lambda výraz bez zložených zátvoriek, tak je nevyhnuté nepoužívať return

Sčítanie

scitanieFunkcia = (int a, int b) -> a+b; 

Odčítanie

odcitanieFunkcia = (int a, int b) -> a-b;

Bezpečné delenie

bezpecneDelenieFunkcia = (int a, int b) -> {
     if(b==0) {
          return 0 ;
     }
     return a/b;
};

Spojenie reťazcov

stringJoin = (String x, String y) -> x.concat(y); 
Stále sme v Jave. Teda v typovom jazyku. Aké sú typy týchto premenných, ktoré v sebe držia lambda výrazy? 

Video:

Ak ťa viac baví počúvať a pozerať, tak si môžeš pozrieť sériu videí o lambda výrazoch v kurze Java pre pokročilých. 

Záver

Ak by si sa chcel dozvedieť o Jave viac alebo si nepochopil všetko, tak som aj pre teba pripravil online kurzy o Jave na https://skillmea.sk.
Ak sa chceš o mne dozvedieť viac, tak klikaj na jaroslavbeno.sk alebo ma sleduj na sociálnych sieťach – youtube, facebook, instagram, linkedin

Zakomponujem aj malú reklamu. V spolupráci s tvorcami stoličky Neseda.com ti ponúkam s kódom/kupónom JaroslavBeno 10% zľavu (aplikovateľná aj na zľavnenú stoličku). 
Ja som Jaro a my sa vidíme, počujeme ak Boh dá nabudúce. 
Čaves.
Skillmea
🥇 Sme jednotka v online vzdelávaní na Slovensku.
Na našom webe nájdeš viac ako 300 rôznych videokurzov z oblastí ako programovanie, tvorba hier, testovanie softwaru, grafika, UX dizajn, online marketing, MS Office a pod. 
Vyber si kurz, ktorý ťa posunie vpred ⏩

Mohlo by ťa zaujímať

Tipy, ako ušetriť čas pri práci v Sketchi, Photoshope, Illustratore a InDesigne
Tipy a triky
19.06.2019
Katarína Kučáková

Tipy, ako ušetriť čas pri práci v Sketchi, Photoshope, Illustratore a InDesigne

Práca v grafických programoch sa niekedy podobá na cirkusový chaos. Ikonky, záložky, nekonečný počet nástrojov, pluginov. Vieme, je ťažké sa v tom zorientovať. Preto sme pre teba v spolupráci s lektormi vybrali tipy, ktoré aj nám zjednodušujú život a hlavne šetria čas. Konkrétne sa pozrieme na programy Sketch, Adobe Photoshop, Illustrator a inDesign.  Sketch Sketch je profesionálny ilustračný program pre prácu s vektorovou grafikou, ktorý je dostupný pre užívateľov Mac OS X. Sketch je intuitívny a užívateľsky nenáročný, jeho zvládnutie na profi úrovni však spočíva najmä v malých trikoch. Tu sú niektoré z nich. [Image] • Rotate copies (rotovanie kópií)                                                                                                       Nástroj Rotate Copies ti umožní rotovať kópie určitej vrstvy okolo konkrétneho bodu. Vezmi si napríklad kvet. Stačí vytvoriť jeden lupeň a desiatky jeho kópií môžeš rotovať okolo stredu. Voilá. Tento nástroj sa štandardne nenachádza v paneli nástrojov, ale môžeš si ho pridať cez control-click a “Customize toolbar”, prípadne v menu cez Layer > Path > Rotate Copies. • Convert to outlines (previesť na obrysy) Ako a kedy previesť text na obrysy je nevyhnutnou znalosťou z hľadiska vektorovej kresby. Fonty totiž dokážu narobiť pri tlači veľa problémov. Na druhej strane, ak sa rozhodneš previesť text na obrysy, text sa stane grafikou a po konverzii ho už nebude možné upraviť. Pre konverziu textu na obrysy zvoľ v menu Layer > Convert to Outlines (prípadne stlač Shift-Command-O). • Obnovenie stratených dát Mac má skvelú funkciu, ktorá je kompatibilná aj so Sketchom. Môžeš si tak pozrieť históriu súboru a obnoviť stratené dáta cez File > Revert To > Browse All Versions. • Vnorenie symbolov Vnorený symbol môžeš vytvoriť tak, že inštanciu (kópiu) symbolu umiestniš do iného symbolu na stránku symbolov. Pri vykonaní zmeny rodičovského symbolu sa zmenia všetky jeho inštancie, bez ohľadu na to, či sú súčasťou iného symbolu, alebo nie. Neexistuje limit na to, ako hlboko je možné symbol vnoriť, symbol však nesmie obsahovať inštanciu seba samého. • Zdieľanie súborov cez appky (napríklad Slack) Jednoducho zdieľaj súbory cez appku tak, že potiahneš vybraný file zo sekcie Export - file a vložíš na plochu vybranej appky.  • Export Presets Týmto nástrojom ušetríš nesmierne mnoho času, môžeš si totiž kopírovať prvky zo svojho designu. Vytvorenie jednotlivých presets urobíš pomocou Presets preference panel. • Klávesové skratky Prehľad všetkých užitočných klávesových skratiek nájdeš tu! • Pluginy Užitočné pluginy sú Stark na kontrolu kontrastu, Runner na rýchlejší prístup k funkciám a Rename it + Styles Generator na stavbu knižníc. Adobe Photoshop Photoshop je veľmi obľúbeným nástrojom v oblasti úpravy fotografií a grafiky. Máš už v malíčku všetky jeho zákutia? [Image] • Kopírovanie farby z akéhokoľvek obrázka, vzoru a podobne.  Pomocou nástroja Eyedropper tool máš možnosť vybrať farbu zo zdroja mimo prostredia photoshopu a palety farieb. Jednoducho klikni a podrž nástroj kvapadlo a so stlačeným tlačidlom prejdi na vybranú stránku alebo obrázok. Namier kurzor na plochu s farbou, uvoľni myš a máš k dispozícii novú zadefinovú farbu. • Zmena veľkosti (a tvrdosti) štetca Asi ťa zdržiava neustále meniť veľkosť a tvrdosť štetca pomocou nástrojovej lišty. Najmä pri úpravách ako je retuš, či práca s maskami oceníš klávesovú skratku Alt+pravé tlačidlo myši (Ctrl+Alt+ľavé tlačidlo na Mac). Stačí podržať tlačidlo myši a pri pohybe vpravo-vľavo môžeš meniť veľkosť štetca, pri pohybe hore-dolu zase jeho tvrdosť. • Zmena prelínacích módov (blend modes) Práca s prelínacími módmi je vždy tak trochu experimentovaním, výsledok je totiž ťažké odhadnúť. Ty sa však nechceš zdržiavať dlho, čaká ťa kopec ďalšej práce, preto by si si mal osvojiť zaujímavú skratku Shift+plus. Táto skratka slúži na rýchle testovanie efektov na fotke. • Izolácia konkrétnej vrsty Niekedy môže projekt obsahovať toľko vrstiev, že sa zdá nemožné zobraziť len jednu konkrétnu. Vtedy stačí jednoducho podržať Alt (Option na Mac) a kliknúť na ikonku oka na vybranej vrstve.  • Bird's-eye-view Táto funkcia ti umožní ľahko sa orientovať v jednotlivých častiach obrázka pri detailnom priblížení. Ak si práve použil zoom a chceš prejsť na inú časť bez toho, aby si musel view zmenšovať, klikni a podrž H a potom ľavé tlačidlo myši. Teraz pohybuj kurzorom myši a prejdi na požadovanú oblasť. Uvoľnením tlačidla myši sa vrátiš k štandardnému náhľadu. • Exportovanie všetkých vrstiev do jednej  Potrebuješ exportovať všetky vrstvy do jednej? Aj na to poznáme skratku. Pomocou Control+Shift+Alt+E. (Command+Shift+Option+E pre Mac) spojíš všetky vrstvy do jednej.  • Prehľad klávesových skratiek[Image] Zdroj: www.digitalsynopsis.com • Užitočné pluginy Ak si dizajnér, alebo grafik, určite oceníš plugin RH Hover Color Picker. Ponúka prehľadnú prácu s farbami a  moderné rozhranie, ktoré konečne nevyzerá ako palubná doska v lietadle. Kopec efektov a filtrov ti umožní ON1 Effects, obrázky zase získaš prostredníctvom pluginu Pexels alebo Shutterstock.   Adobe Illustrator Illustrator je veľmi obľúbený pre svoje široké využitie, vytvoríš v ňom všetko od firemného loga, webových ikon, až po knižné ilustrácie. Ak si chceš osvojiť užitočné tipy a triky pre prácu s ním, si na správnom mieste. [Image] • Výber podobných objektov Ak už v Illustratore kreslíš zložitejšie tvary, je užitočné sa naučiť, ako vyhľadať podobné objekty. Ak napríklad chceme zmeniť vlastnosti viacerým objektom, nemusíme prácne objekty vyhľadávať, navyše môžu byť čiastočne zakryté inými objektmi. Stačí vybrať vybrať jeden z objektov, prejsť na Select>Same a vybrať požadované kritérium vyhľadávania objektov (napríklad Fill Colour). Všetky objekty s požadovanou farbou výplne potom systém vyberie a zmení pomocou vzorkovníka farieb. • Nauč sa správne používať Pen Tool Zvládnutie tohto nástroja v Illustratori by malo byť tvojím prvým krokom. Nie je to žiadne umenie a pomocou nástroja Pen Tool získaš väčšiu kontrolu nad tým, čo vytváraš. Výhodou je i jeho univerzálne použitie, keďže napríklad vo všetkých Adobe programoch funguje rovnako. • Použitie Pathfinder na vytvorenie komplexných tvarov Po zvládnutí Pen Tool by si mal upriamiť pozornosť aj na nástroj Pathfinder. Pathfinder umožňuje kombinovať objekty do nových tvarov. Môžete napríklad vrstviť jednoduché tvary a potom pomocou ukazovateľa pohybu ich transformovať na jednotnejší, zložitejší tvar. Existuje niekoľko tutoriálov na použitie Pathfinder na transformáciu základných tvarov na niektoré úžasné umelecké diela.  • Vyrob si vlastné štetce Ilustrátor milujeme, ale je potrebné si v ňom vytvoriť vlastný priestor. Nie všetky jeho základné funkcie sú pre vytvorenie vlastnej grafiky dostačujúce. To platí napríklad i o štetcoch. V Adobe Illustrator existujú 4 základné druhy štetcov: kaligrafické, rozptylové, umelecké a vzorkové. Ty máš ale možnosť pridať si svoje vlastné. Vyber si všetky tvary, z ktorých chceš urobiť štetec. V palete štetcov klikni na malú šípku vľavo vyber "new brush".  • Použi Color CC Ak chceš, aby tvoje ilustrácie vyzerali profesionálne, mali by obsahovať kombinácie farieb, ktoré oku lahodia. To je nie vždy jednoduché a ak nechceš strácať čas ich porovnávaním, určite využi Color CC. Tento nástroj ti umožní vybrať pekné, vkusné kombinácie farieb, navyše ich pridaním do palety farieb budeš mať hneď poruke. • Prehľad základných klávesových skratiek[Image] Zdroj: www.digitalsynopsis.com • Užitočné pluginy Prevezmi kontrolu nad svojimi vektormi pomocou VectorScribe v3, ktorú tvorcovia opisujú ako vektorový švajčiarsky nôž. Ak si začínajúci dizajnér, ktorý sa chce ponoriť do sveta 3D grafiky, určite neobíď plugin Cineware, efektný je aj Gold Rush a Phantasm v3.  Adobe InDesign Podobne ako Illustrator, je InDesign založený na vektorovej grafike. Poskytuje priestor, v ktorom môžeš spojiť všetky všetky svoje ilustrácie a grafiku (napr. z Photoshopu, Illustratoru) a vytvoriť si vlastné interaktívne dokumenty pre web, tlač, mobilné zariadenia a podobne. A aké triky by si si mal osvojiť v InDesigne? [Image] • Vytvorenie viacerých objektov rovnakej veľkosti  Ak chceš vytvoriť viacero objektov rovnakej veľkosti, nastav potrebnú šírku a výšku jedného objektu. Potom je už len potrebné vybrať zostávajúce objekty a zvoliť Object> Transform Again> Transform Sequence Again Individually. • Matematické funkcie v paneli nástrojov povedzme, že máš obrázok v ráme a chceš ho zväčšiť o 1″, pretože by tak pravdepodobne vyzeral lepšie. V paneli nástrojov, konkrétne vo Width field napíš 1 hneď vedľa existujúcej hodnoty. Stlač Tab a InDesign urobí ostatné za teba. Rovnako môžeš použiť i funkcie odčítanie (-), násobenie (*) a delenie (/). • Používaj vyplnenie zástupným textom.  Lorem Ipsum ti určite nemusím predstavovať. V InDesigne nám môže poslúžiť ako zástupný text (pravé tlačidlo > Vyplniť zástupným textom) v návrhoch, kde tento text použijeme pre lepšiu predstavu finálneho návrhu.  • Prispôsobenie rámu (frame fitting) Ak chceš prispôsobiť rám grafike vo vnútri neho, je potrebný dvojitý klik na roh rámu. Alebo stlač Cmd-Opt-C (Mac) / Ctrl-Alt-C (PC). • Vkladanie viacerých obrázok pomocou Adobe Bridge (multiplace from Bridge) Síce pre vloženie obrázka môžeš použiť File>Place, prípadne pretiahnuť požadovaný obrázok na plochu InDesign, je však určite jednoduchšie vkladať viacero obrázkov naraz. Otvor Adobe Bridge, vyber si obrázky, ktoré chceš použiť vo svojom layoute a zvoľ File>Place>In InDesign. Tým sa automaticky prepneš do InDesign, pomocou klávesov so šípkami môžeš prechádzať obrázky v kurzore a jednoducho ich klepnutím umiestniť. Pre úpravu môžeš využiť Object>Fitting. • Aplikovanie efektu z jedného objektu na iný Podarilo sa ti vytvoriť skvelý efekt, ktorý by si chcel aplikovať na ďalšie objekty? V tom prípade vyber objekt s požadovaným formátovaním a potiahni ikonu “FX” z panela efektov na objekt, na ktorý chceš formátovanie aplikovať. V prípade, že chceš vymazať všetky efekty z objektu, zvoľ „clear effects“ z Effects okna v paneli nástrojov.  • Klávesové skratky Prehľad všetkých užitočných klávesových skratiek nájdeš tu! • Užitočné pluginy Aquafadas AVE ti uľahčí digitálne publikovanie - od návrhu po distribúciu obsahu, jeho prispôsobenie rôznym platformám. Platený plugin Active Tables ti do InDesign prinesie Excel, vďaka PDF2Id zase budeš môcť importovať PDF súbory a konvertovať na editovateľný formát.  Práca v uvedených softvéroch je veľmi obsiahla a komplexná, snažili sme sa ti uviesť aspoň niekoľko "hackov" pre zjednodušenie a urýchlenie práce. Ak by si chcel prispieť nejakými overenými trikmi, podeľ sa o ne v komentári! Zaujala ťa téma grafiky a designu? Na Learn2code sme pre teba pripravili ponuku online kurzov grafiky, z ktorých si vyberieš svoj ušitý na mieru.
Java 10 a 11 – vybrané programátorské zmeny
Tipy a triky
22.05.2019
Skillmea

Java 10 a 11 – vybrané programátorské zmeny

Zaujíma ťa, aké zmeny sa udiali v Java 10 a 11? Čítaj článok a všetko podstatné sa dozvieš. Java 10Var Od verzie 10 je dostupná možnosť nešpecifikovať typy premenných pre lokálne premenné, ak ich vie kompilátor zistiť z pravej strany. Namiesto napísania typu stačí napísať nešpecifikovaný typ a to var. var list = new ArrayList<String>(); Kompilátor vie zistiť, akého typu je list a teda nie je možné pridávať čísla do listu, ale iba String. var list = new ArrayList<String>(); list.add("Jaro");Var sa neberie ako kľúčové slovo, ale ako nešpecifikovaný typ. Teda nemôžeme vytvoriť triedy s názvom var, ale je možné vytvoriť metódu s názvom var. //error String return(){ return ""; } //ok String var(){ return ""; }Nová metóda na kolekciách Pri kolekciách pribudla metóda copyOf, ktorá skopíruje jednu kolekciu do druhej. List<String> list = List.of("Jaro", "Fero", "Duro"); Set<String> set = Set.copyOf(list); List<String> listCopy = List.copyOf(set); Map<Integer,String> map = Map.of(1,"Jaro",2,"Fero"); Map<Integer,String> map2 = Map.copyOf(map);Java 11Var v lambda výrazoch Lambda výrazy podporujú type inferenciu, čo znamená, že ak používaš premennú v lambda výraze, tak java kompilátor vie zistiť, akého je typu a nemusíme typ zadefinovať. list.stream() .map(s -> s.toLowerCase()+".") .collect(Collectors.toList());V predchádzajúcich verziách javy sme nedokázali písať anotácie k premenným vo vnútri lambda výrazu, ktoré nemali zadefinovaný typ. Od verzie 11 je to možné, skoro – nemusíme zadefinovať špecifický typ, stačí ak napíšeme var. list = list.stream() .map((@Notnull var s) -> s.toLowerCase()+".") .collect(Collectors.toList());Jednoduchšie spustenie programuAk si napíšeš jednoduchý program a chceš ho spustiť v konzole, tak ho musíš najprv skompilovať cez príkaz javac a potom spustiť cez príkaz java.  Teraz stačí, keď rovno spustíš .java súbor pomocou java príkazu. Stane sa to, že sa automaticky súbor skompiluje a spustí.  java Main.java  java.lang.String metódyV triede String pribudli nové metódy.  isBlank() – vracia true, pokiaľ je reťazec prázdny alebo obsahuje len biele znaky  lines() – zo Stringu sa vráti stream riadkov – ak stream obsahuje oddeľovače riadkov  java.util.function.Predicate not Predstavme si takýto kód: lines.stream() .filter(s -> !s.isBlank())Pomocou Predicate.not vyzerá krajšie a čitateľnejšie: list.stream() .filter(Predicate.not(s -> s.isBlank()));S výhodou použitia method referencie:  list.stream() .filter(Predicate.not(String::isBlank));Ak použijeme statický import: list.stream() .filter(not(String::isBlank));Ak ťa zaujal článok a chcel by si sa dozvedieť viac, tak klikni na moju stránku a presuň sa na to, čo ťa zaujíma. Programovanie, kurzy, videá zdarma a iné záležitosti. Klikaj na www.jaroslavbeno.sk
Kontingenčné tabuľky, I.časť – Vytvorenie kontingenčnej tabuľky
Tipy a triky
29.04.2019
Skillmea

Kontingenčné tabuľky, I.časť – Vytvorenie kontingenčnej tabuľky

Kontingenčná tabuľka – vytvorenie, polia kontingenčnej tabuľkyKontingenčné tabuľky. Stačí spomenúť toto slovné spojenie a ľudia automaticky začínajú mať akúsi formu alergickej reakcie. V niektorých sa dokonca prebudia výčitky svedomia: „ Mal by som ich ovládať, veď v životopise mám uvedenú znalosť Excelu na úrovni pokročilý.“ Máme pocit, že sa jedná o niečo ťažké, v skutočnosti však kontingenčné tabuľky vôbec nie sú jadrová fyzika. Poď sa o tom presvedčiť.  [Image] Aj teba strašia kontingenčné tabuľky? Ako a kedy sa používajú? Kontingenčná tabuľka alebo tzv. pivot table je veľmi efektívnym nástrojom Excelu. Dokáže sumarizovať a organizovať rozsiahle dáta z rôznych tabuliek a databáz. Predstav si, že dostaneš v práci zadanie. Všetky objednávky, ktoré prišli do tvojej firmy v rámci roka (čo môže byť pokojne niekoľko tisíc) máš roztriediť podľa jednotlivých pobočiek, kategórií nákupu. Zároveň chceš zistiť, koľko jednotlivá pobočka zarobila na akom produkte, prípadne vyjadriť percentuálny podiel konkrétneho produktu na celkovom počte predaných produktov. Pár dní by si si nad takým zadaním trhal vlasy, nebyť kontingenčnej tabuľky. V priebehu pár minút ti vie poskytnúť potrebné údaje k analýze a porovnávaniu dát. Ešte stále si nezaslúži tvoje uznanie? Vytvorenie kontingenčnej tabuľky Tak si sa na to odhodlal. Správne. Ešte pred vytvorením tabuľky je však potrebné si dať pozor na viacero vecí:  1. Hlavička tabuľky, z ktorej chceš vytiahnuť dáta musí byť kompletne vyplnená, tzn. každý zo stĺpcov má názov   2. Hlavička tabuľky nesmie obsahovať stĺpce s rovnakým názvom   3. V prípade, že máš súčtový riadok pod tabuľkou, oddeľ ho od zvyšku tabuľky (stačí prázdnym riadkom). Vyhneš sa tak duplicitnému sčítaniu hodnôt.   4.Odporúčame vytvárať kontingenčnú tabuľku na novom hárku. Ak totiž tabuľka zasiahne do vstupných dát, natrvalo ich zmaže. Vstupné údaje si si skontroloval a už netrpezlivo čakáš na to, aby si sa mohol pustiť do svojej prvej kontingenčnej tabuľky. Tak smelo!  1. Označ tabuľku, prípadne bunky, z ktorých si želáš kontingenčnú tabuľku vytvoriť[Image]   2. Na karte Vložiť klikni na možnosť Kontingenčná tabuľka[Image]   3. Otvorí sa nové dialógové okno, kde uvidíš, z ktorých buniek bude kontingenčná tabuľka vytvorená a možnosť umiestnenia novom alebo existujúcom hárku.Stlač OK. Voilá.[Image]  4. Na novom hárku sa ti vľavo zobrazí akási prázdna tabuľka, vpravo sa nachádza nástroj kontingenčnej tabuľky[Image] Zostáva už len získať údaje podľa kritérií nášho zadania. K tomu nám poslúži nástroj kontingenčnej tabuľky. Skladá sa z 5 častí:   1. Polia kontingenčnej tabuľky - sú tvorené z názvov stĺpcov zo zdrojovej tabuľky.  2. Filter zostavy - hodnoty, podľa ktorých chceme kontingenčnú tabuľku filtrovať  3. Menovky riadkov - hodnoty v tomto poli budú vpísané do riadkov  4. Menovky stĺpcov - hodnoty v tomto poli budú vpísané do stĺpcov  5. Hodnoty – hodnoty v tomto poli sú číselné, využívame pri nich rôzne matematické operácie Texty napríklad zadáva Excel automaticky do riadkov. Povedzme, že ti to nevyhovuje. Vtedy stačí len myškou presunúť požadované pole z jednej oblasti do druhej, napr. z Menovky riadkov do Menovky stĺpcov. Polia si teda usporiadaš tak, aby si získal čo najlepší prehľad o údajoch k analýze. Potrebuješ si vytlačiť kontingenčnú tabuľku?Najprv ti odporúčame zvoliť si vertikálne rozloženie, ktoré je vhodnejšie na tlač. Zvislé rozloženie je vhodnejšie najmä vtedy, ak nechceš, aby bola tvoja kontingenčná tabuľka rozložená vodorovne na celom hárku. Ak sa ešte k tomu pridajú polia s hodnotami v stĺpcoch, ktoré sú štandardne usporiadané vodorovne, tabuľka bude veľmi široká. Náš tip: Ak tlačíš kvôli svojej práci množstvo nielen kontingenčných tabuliek, v rámci úspory farby ti odporúčame kompatibilné náplne do tlačiarne. Tie sú v porovnaní s originálnymi náplňami lacnejšie, ekologickejšie, avšak stále ponúkajú 100% kvalitu tlače. ZáverA práve si dospel do bodu, kedy už dokážeš nielen vytvoriť kontingenčnú tabuľku, ale vieš si v nej údaje zorganizovať tak, aby bola analýza a porovnanie dát jednoduchšie. Kontingenčná tabuľka ti dokáže ušetriť hodiny a hodiny zbytočného filtrovania a ty môžeš využiť svoj voľný čas zmysluplnejšie. Ako, to je na tebe. :) [Image] Aj komplexná práca s kontingenčnými tabuľkami je súčasťou nášho online kurzu Excel pre pokročilých, kde nájdeš rozsiahle tutoriály pre prácu s excelovskými funkciami, makrami, formátovaním a podobne. Naučíš sa s Excelom pracovať ako profík, čo bude plusom nielen pre tvoje CVčko, ušetrí ti určite veľa času aj v praktickom živote. Navyše na konci kurzu získať od Learn2code certifikát o absolvovaní kurzu, aby viac o tvojej úrovni nikto nepochyboval! 

Nezmeškaj info o nových kurzoch a špeciálnych ponukách