31.10.22

Java - Queue

Besplatni Java kurs - 51. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Queue bi u prevodu na naš jezik značilo red. Redovi u programiranju su veoma slični redovima u stvarnom životu: svaki novi element koji pristigne uvek ide na kraj reda, dok će prvi sledeći element koji će biti uslužen biti onaj koji je prvi, tj. na početku reda. Ovakav princip se programiranju naziva FIFO (First In - First Out), odnosno, na našem jeziku: prvi element koji uđe u red prvi će i izaći.

Java Queue - Upotreba

Potrebno je najpre uvesti interfejs Queue iz paketa java.util:

import java.util.Queue;


Pročitaj i nastavak:

Besplatni Java kurs - 52. deo - PriorityQueue

20.10.22

Java 19 - Šta donosi najnovija verzija Jave?

Pročitaj i ostale Java vesti.

Najnovija verzija programskog jezika Java, Java 19, objavljena je 20. sep. 2022. i donosi nekoliko promena:

  • Record Patterns (Preview) - JEP 405
  • Linux/RISC-V Port - JEP 422
  • Foreign Function & Memory API (Preview) - JEP 424
  • Virtual Threads (Preview) - JEP 425
  • Vector API (Fourth Incubator) - JEP 426
  • Pattern Matching for switch (Third Preview) - JEP 427
  • Structured Concurrency (Incubator) - JEP 428

16.10.22

Java - LinkedHashSet

Besplatni Java kurs - 50. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

LinkedHashSet ili uvezani heš skup predstavlja uređeni skup heš vrednosti. Za razliku od običnog heš skupa u kojem redosled ne postoji, LinkedHashSet čuva heš vrednosti u tačno određenom redosledu.

Java HashSet - Upotreba

Prvo je potrebno uvesti klasu LinkedHashSet iz paketa java.util:

import java.util.LinkedHashSet;


Pročitaj i nastavak:

Besplatni Java kurs - 51. deo - Queue

15.4.22

Java 18 - Nove mogućnosti

Pročitaj i ostale Java vesti.

Najnovija verzija Jave, Java 18, koja je nedavno objavljena (22. mar. 2022.) stigla je sa nekoliko promena:

  • UTF-8 by Default - JEP 400
  • Simple Web Server - JEP 408
  • Reimplement Core Reflection with Method Handles - JEP 416
  • Internet-Address Resolution SPI (Service-provider Interface) - JEP 418
  • Code Snippets in Java API Documentation - JEP 413
  • Vector API (Third Incubator) - JEP 417
  • Foreign Function and Memory API (Second Incubator) - JEP 419
  • Pattern Matching for switch (Second Preview) - JEP 420
  • Deprecated Finalization for Removal - JEP 421
  • String Deduplication Support - JEP 192

14.10.21

Java - HashSet

Besplatni Java kurs - 49. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

HashSet bi se moglo prevesti kao skup heš vrednosti ili heš skup. Heš vrednosti su vrednosti koje nastaju primenom heš funkcija na ulazne vrednosti. Heš funkcije su tema za sebe i potrebo je više prostora za opisivanje svih pojedinosti koje su neophodneza potpuno razumevanje, ali pokušaću da objasnim ukratko, samo osove koje su neophodne za razumevanje heš skupova.

Heš funkcije

Kao i svaka druga matematička funkcija, heš funkcija (f) preobražava ulaznu vrednost (x) u izlaznu vrednost (y). Jedna od najjednostavnijih heš funcija je ostatak pri deljenju. Uzmimo za primer da je naša heš funcija ostatak pri deljenju brojem 10. Hajde da primenimo našu funkciju na nekoliko ulaznih vrednosti:

1. slučaj
f = ostatak pri deljenju brojem 10
x = 15
f(x) = f(15) = ostatak deljenja broja 15 brojem 10 = 5
znači rešenje je:
y = 5

2. slučaj
f = ostatak pri deljenju brojem 10
x = 23
f(x) = f(23) = ostatak deljenja broja 23 brojem 10 = 3
i rešenje je:
y = 3

3. slučaj
f = ostatak pri deljenju brojem 10
x = 195
f(x) = f(195) = ostatak deljenja broja 195 brojem 10 = 5
rešenje je (ponovo):
y = 5

Iz primera se može zaključiti nekoliko stvari:
  • heš funkciju je moguće primeniti na beskonačan broj ulaznih vrednosti
  • heš funkcija može dati isti rezultat za različite ulaze (u našem primeru prvi i treći slučaj imaju isto rešenje: i za x = 15 i za x = 195 rešenje je 5)
  • nemoguće je zaključiti koja vrednost je bila ulazna vrednost heš funkcije na osnovu rezultata (u našem primeru, kada imamo rešenje 5 ne možemo znati da li je na ulazu bilo 15, 195 itd.)

Ove tri osobine treba imati na umu pri radu sa heš skupovima, ali i pri radu sa bilo kojom drugom heš kolekcijom - kako u Javi, tako i u drugim programskim jezicima.

Skupovi heš vrednosti predstavljaju Java kolekcije koje sadrže jedinstvene elemente i veoma su brzi za pretragu. Java skupovi heš vrednosti se koriste upotrebom metoda klase HashSet.

30.9.21

Java - EnumSet

Besplatni Java kurs - 48. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

EnumSet bi u prevodu na naš jezik značilo skup nabrajanja. Skupovi nabrajanja su Java kolekcije koje mogu sadržati nijedan, jedan ili više elemenata nabrajanja. Java skupovi nabrajanja se stvaraju upotrebom metoda klase EnumSet.

Java EnumSet - Upotreba

Najpre je neophodno uvesti EnumSet iz paketa java.util na sledeći način:

import java.util.EnumSet;

Zatim je potrebno napraviti nabrajanje. Iskoristićemo primer iz prethodnog dela kursa:

enum DanUNedelji {
    PONEDELJAK,
    UTORAK,
    SREDA,
    CETVRTAK,
    PETAK,
    SUBOTA,
    NEDELJA
}

Konačno sve je spremno za stvaranje skupova nabrajanje od nabrajanja DanUNedelji

Stvaranje skupa nabrajanja

Ako je potrebno napraviti skup koji će sadržati sve elemente nabrajanja DanUNedelji, koristi se metoda allOf():

EnumSet<DanUNedelji> sviDaniUNedelji;
sviDaniUNedelji = EnumSet.allOf(DanUNedelji.class);

31.8.21

Java 17 stiže za dve nedelje!

Pročitaj i ostale Java vesti.

Za oko dve nedelje (14. sep. 2021.) trebalo bi da izađe Java 17 - najnovija verzija programskog jezika Java. To će biti prva verzija posle verzije 11 koja će imati dugoročnu podršku. Besplatna dugoročna podrška trajaće bar do septembra 2027. god.

Java 17 sa sobom donosi četrnaest poboljšanja:

  • Restore Always-Strict Floating-Point Semantics - JEP 306
  • Enhanced Pseudo-Random Number Generators - JEP 356
  • New macOS Rendering Pipeline - JEP 382
  • macOS/AArch64 Port - JEP 391
  • Deprecate the Applet API for Removal - JEP 398
  • Strongly Encapsulate JDK Internals - JEP 403
  • Pattern Matching for switch (Preview) - JEP 406
  • Remove RMI Activation - JEP 407
  • Sealed Classes - JEP 409
  • Remove the Experimental AOT and JIT Compiler - JEP 410
  • Deprecate the Security Manager for Removal - JEP 411
  • Foreign Function & Memory API (Incubator) - JEP 412
  • Vector API (Second Incubator) - JEP 414
  • Context-Specific Deserialization Filters - JEP 415

13.7.21

Java - Enums

Besplatni Java kurs - 47. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Enums ili enumeracije(nabrajanja) su posebna vrsta Java kolekcija koja predstavlja grupu konstanti. Java enumeracije se stvaraju upotrebom ključne reči enum nakon koje slede naziv i konstante.

Enums - Upotreba

Java nabrajanja se mogu koristiti neposredno, bez uvođenja paketa:

Stvaranje Enumeracije

Nabrajanja se mogu koristiti za grupisanje konstanti, npr. naziva dana u nedelji:

enum DanUNedelji {
    PONEDELJAK,
    UTORAK,
    SREDA,
    CETVRTAK,
    PETAK,
    SUBOTA,
    NEDELJA
}

Konstantne vrednosti iz enumeracije se se mogu mogu dodeljivati promenljivama čiji je tip data enumeracija, bez upotrebe ključne reči new:

DanUNedelji dan = DanUNedelji.PETAK;


Pročitaj i nastavak:

Besplatni Java kurs - 48. deo - EnumSet

30.6.21

Java - ArrayDeque

Besplatni Java kurs - 46. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Array Deque je Java kolekcija iz paketa java.util koja predstavlja niz - red sa dva kraja, otuda i naziv (na engleskom: Array Double Ended Queue). Kao što se iz naziva može zaključiti, ArrayDeque je red koji omogućava dodavanje i uklanjanje članova na oba kraja.

Korišćenje ArrayDeque

Pre upotrebe potrebno je uvesti paket u kome se nalazi ArrayDeque:

import java.util.ArrayDeque;

Stvaranje ArrayDeque

Red sa dva kraja se stvara pomoću ključne reči new:

ArrayDeque<String> mojiOmiljeniStraniJezici = new ArrayDeque<String>();

29.6.21

Java - LinkedList

Besplatni Java kurs - 45. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.

Linked List je još jedna od često korišćenih Java kolekcija iz paketa java.util. Na našem jeziku, linked list se može prevesti kao povezana lista. Povezane liste su linearna struktura podataka čiji članovi nisu uskladišteni u neprekidnom nizu memorijskih adresa, već mogu biti skladišteni na različitim mestima. Svaki član povezane liste sadrži dva dela: podatak i adresu narednog člana. Kao što je već pomenuto, LinkedList je deo java.util paketa koji se prvo mora uvesti i tek onda je moguće koristiti ArrayList.

Uvođenje LinkedList

Najpre je potrebno uvesti paket u kome se nalaze povezane liste. Nije nužno uvesti ceo paket, već samo LinkedList:

import java.util.LinkedList;

Stvaranje LinkedList

Nova povezana lista se stvara pomoću ključne reči new:

LinkedList<String> mojiOmiljeniSportovi = new LinkedList<String>();