Objektno orijentirano programiranje
|
|
- Peregrine McDaniel
- 6 years ago
- Views:
Transcription
1 Objektno orijentirano programiranje 9. Kolekcije Zaštićeno licencom
2 Creative Commons slobodno smijete: dijeliti umnožavati, distribuirati i javnosti priopćavati djelo remiksirati prerađivati djelo pod sljedećim uvjetima: imenovanje. Morate priznati i označiti autorstvo djela na način kako je specificirao autor ili davatelj licence (ali ne način koji bi sugerirao da Vi ili Vaše korištenje njegova djela imate njegovu izravnu podršku). nekomercijalno. Ovo djelo ne smijete koristiti u komercijalne svrhe. dijeli pod istim uvjetima. Ako ovo djelo izmijenite, preoblikujete ili stvarate koristeći ga, preradu možete distribuirati samo pod licencom koja je ista ili slična ovoj. U slučaju daljnjeg korištenja ili distribuiranja morate drugima jasno dati do znanja licencne uvjete ovog djela. Najbolji način da to učinite je linkom na ovu internetsku stranicu. Od svakog od gornjih uvjeta moguće je odstupiti, ako dobijete dopuštenje nositelja autorskog prava. Ništa u ovoj licenci ne narušava ili ograničava autorova moralna prava. Tekst licencije preuzet je s Objektno orijentirano programiranje, FER 2
3 Kolekcije Svi programi imaju zajedničko svojstvo obrađuju podatke Podaci su često grupirani kroz različite strukture podataka Za grupe podataka Java koristi pojam kolekcije (engl. collection) Kolekcija - objekt koji grupira više drugih elemenata (drugih objekata) spremnik, kontejner (engl. container) osim primitivnih tipova, sve ostalo u Javi su objekti (primjerci neke klase koja je direktno ili indirektno izvedena iz klase Object) Objektno orijentirano programiranje, FER 3
4 Uobičajena svojstva kolekcija Kolekcija uobičajeno omogućava: pohranu podataka dohvat podataka manipulaciju podataka (traženje elementa, brisanje, ) Kad ne bi postojale kolekcije u Javi, vlastitu bi mogli stvoriti nalik sljedećoj definiciji: interface Collection { //ili (abstract) class Collection void addelement( data ) { } boolean containselement( data ) { } data findelement( criterion ) { } void removeelement( criterion ) { } } Ovim pristupom moguće je ponuditi različite implementacije Objektno orijentirano programiranje, FER 4
5 Razne implementacije kolekcija Pretpostavimo da razvoj aplikacije radimo nad malim skupom podataka, pa elemente možemo držati u memoriji class MemoryCollection implements Collection { //ili extends } void addelement( data ) { } boolean containselement( data ) { } data findelement( criterion ) { } void removeelement( criterion ) { } Nakon razvoja programa, skup podataka je dovoljno porastao da nam više ne stane u memoriju Dovoljno je napisati novu implementaciju sučelja (ili naslijediti klasu) koja podatke čuva na disku sve metode bi trebale raditi s općenitom kolekcijom, a ne s konkretnom implementacijom class DiskCollection implements Collection { //ili extends } void addelement( data ) { } boolean containselement( data ) { } data findelement( criterion ) { } void removeelement( criterion ) { } Objektno orijentirano programiranje, FER 5
6 Kolekcija kao sučelje, a ne kao klasa Zašto definirati kolekciju preko sučelja? omogućava više različitih implementacija iste funkcionalnosti na sučelje treba gledati kao ugovor između korisnika kolekcije i konkretne implementacije obećanje što klasa radi, ne i kako će to napraviti omogućava laganu ponovnu implementaciju ukoliko se postojeća pokaže lošom Možemo li koristiti apstraktnu klasu umjesto sučelja? da, ali onda smo uklonili mogućnost da klasa koji predstavlja kolekciju naslijedi neki drugu klasu Treba se pitati postoji li zajednički kôd za sve takve kolekcije? Ovakav princip omogućava izradu generičkih algoritama, koji rade sa svim klasama koji implementiraju propisano sučelje Algoritam ovisi o sučelju, ne o konkretnoj implementaciji Objektno orijentirano programiranje, FER 6
7 Javin okvir kolekcija Javin okvir kolekcija (engl. Java Collection Framework) sastavljen je od: sučelja omogućavaju rad s kolekcijama neovisno o samoj implementaciji implementacija klase koje predstavljaju konkretne implementacije sučelja uz različite složenosti podržanih operacija algoritama općenite metode za sortiranje, pretraživanje, i sl., od kojih je dio izdvojen i u zasebnu klasu java.util.collections. Objektno orijentirano programiranje, FER 7
8 Prednosti uporabe Javinog okvira kolekcija Smanjivanje potrebne količine koda Povećanje brzine i kvalitete rada Ubrzano učenje Olakšan razvoj novih API-ja Promovira višestruku iskoristivost koda Objektno orijentirano programiranje, FER 8
9 Možemo li bolje od onoga što postoji? ili zašto nemojte pisati svoje kolekcije ako imate gotove postojeće implementacije su već optimizirane na svim razinama npr. ovo je isječak iz izvornog koda dvostruko povezane liste public E get(int index) { checkelementindex(index); return node(index).item; } Node<E> node(int index) { if (index < (size >> 1)) { Node<E> x = first; for (int i = 0; i < index; i++) x = x.next; return x; } else { Node<E> x = last; for (int i = size - 1; i > index; i--) x = x.prev; return x; } } Objektno orijentirano programiranje, FER 9
10 Pregled vrsta kolekcija Kolekcije su u Javi podijeljene na sljedeći način: Sučelje Collection modelira najopćenitiju kolekciju Objektno orijentirano programiranje, FER 10
11 Iteratori u Javinom okviru kolekcija Jedna od najvažnijih operacija nad kolekcijama: obilazak svih elemenata iteriranje Sučelje Collection nasljeđuje sučelja Iterable. U pseudokodu to izgleda ovako: Iterator it = collection.iterator() while(it.hasnext()) radi nešto s it.next() odnosno u verziji for-each for(item : collection) radi nešto s item Objektno orijentirano programiranje, FER 11
12 Sučelje Collection (1) Modelira općenitu kolekciju elemenata kolekcije mogu (ali ne moraju) podržavati duplikate kolekcije mogu (ali ne moraju) imati poredak elemenata Specifične vrste kolekcija modelirane su drugim sučeljima izvedenim iz sučelja Collection Neporedane kolekcije koje mogu sadržavati duplikate trebale bi direktno implementirati sučelje Collection JDK ne nudi takve implementacije Objektno orijentirano programiranje, FER 12
13 Sučelje Collection (2) Konkretne implementacije sučelja Collection trebale bi nuditi barem dva konstruktora konstruktor bez argumenata (za stvaranje praznih kolekcija) konstruktor koji prima referencu da drugu kolekciju(za stvaranje kopija kolekcija) ovo je zahtjev koji sučelje ne može specificirati U popisu metoda neke metode su navedene kao opcionalne konkretna implementacija mora imati tu metodu (jer nije u pitanju default metoda), ali ne mora podržavati takvu akciju obično su metode koje modificiraju kolekciju označene kao opcionalne ako operacija nije podržana tada metoda u konkretnoj implementaciji treba baciti iznimku UnsupportedOperationException Objektno orijentirano programiranje, FER 13
14 Sučelje Collection (3) Konkretne implementacije sučelja Collection mogu dolaziti s različitim dodatnim ograničenjima, npr. nisu podržani null-elementi elementi moraju biti nekog određenog tipa Takve kolekcije mogu, u prisustvu neprikladnih elemenata bacati neprovjeravane iznimke poput NullPointerException ili ClassCastException Općenito, ako nije eksplicitno definirano, implementacije kolekcija nisu višedretveno sigurne Objektno orijentirano programiranje, FER 14
15 Popis metoda sučelja Collection public interface Collection<E> extends Iterable<E> { int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator<E> iterator(); boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //optional boolean removeall(collection<?> c); //optional boolean retainall(collection<?> c); //optional void clear(); //optional Object[] toarray(); Operacije s poljima <T> T[] toarray(t[] a); Osnovne operacije default boolean removeif(predicate<? super E> filter) {...} default Spliterator<E> spliterator(){...} default Stream<E> stream() {...} default Stream<E> parallelstream() { } Proširenja u Javi 8 Masovne operacije Objektno orijentirano programiranje, FER 15
16 Sučelje Set Skup (engl. Set) je kolekcija koja ne može sadržavati duplikate Sadrži sve metode koje propisuje sučelje Collection uz gore navedeni uvjet Modelirano je sučeljem Set public interface Set<E> extends Collection<E> u kojem nema niti jedne nove metode razlika je samo u ugovoru pojedinih metoda (javadoc nad metodama) Objektno orijentirano programiranje, FER 16
17 Implementacije sučelja Set Javin okvir kolekcija dolazi s tri implementacije sučelja Set: HashSet najbrža, većina osnovnih operacija je O(1) ne garantira poredak kod obilaska elemenata ispod je tablica raspršenog adresiranja TreeSet sporije, većina osnovnih operacija je O(log N) elemente obilazi sortiranim poretkom ispod je vrsta binarnog stabla LinkedHashSet malo sporije od HashSet elemente obilazi poretkom kojim su ubačeni kombinacija ulančane liste (za poredak) i tablice raspršenog adresiranja Objektno orijentirano programiranje, FER 17
18 Koju implementaciju sučelja Set odabrati? Ovisi što naš algoritam dominantno radi: Malo zapisivanja, puno čitanja? Efikasno iteriranje? Važan redosljed elemenata pri iteriranju? Odabrati implementaciju koja nudi zadovoljavajuću funkcionalnost i performanse Objektno orijentirano programiranje, FER 18
19 Složenosti operacija sučelja Set u različitim implementacijama Kakva je složenost pojedine metode ovisno o implementaciji? Implementacija HashSet: contains(object e)? remove(object e)? add(e e)? Implementacija TreeSet: contains(object e)? remove(object e)? add(e e)? Objektno orijentirano programiranje, FER 19
20 Primjer rada različitih implementacija skupa (1) Napisati program koji će iz komandne linije primiti niz argumenata te će na zaslon ispisati argumente ali bez ponavljanja duplikata ilustrirati razliku u ponašanju svih triju implementacija tipičan primjer uporabe skupova package hr.fer.oop.sets;... public class NoDuplicatesProgram {... public static void main(string[] args) { System.out.println("Using HashSet:"); hr.fer.oop.sets.noduplicateprogram writecollection(addtoset(new HashSet<String>(), args)); System.out.println("Using TreeSet:"); writecollection(addtoset(new TreeSet<String>(), args)); } System.out.println("Using LinkedHashSet:"); writecollection(addtoset(new LinkedHashSet<String>(), args)); Objektno orijentirano programiranje, FER 20
21 Primjer rada različitih implementacija skupa (2) Metoda addtoset prima referencu na skup i vraća referencu na isti skup povratna vrijednost se odmah može koristiti kao argument (sjetimo se strcat/strcpy iz C-a) Metoda writecollection ispisuje bilo koju kolekciju (nije nužno morao biti skup) štoviše, dovoljno je da parametar Iterable<String> public class NoDuplicatesProgram {... private static Set<String> addtoset( Set<String> set, String[] elements) { } for (String element : elements) return set; set.add(element); private static void writecollection(iterable<string> col) { } for (String element : col) System.out.println(element); System.out.println(); hr.fer.oop.sets.noduplicateprogram Objektno orijentirano programiranje, FER 21
22 Primjer rada različitih implementacija skupa (3) Pokrene li se program sa sljedećim argumentima ovo prvo je jako vazno a i ovo drugo isto dobit će se sljedeći ispis: hr.fer.oop.sets.noduplicateprogram Objektno orijentirano programiranje, FER 22
23 Koju implementaciju odabrati u sljedećem primjeru? (1) Napisati program koji prima imena dviju datoteka preko naredbenog retka svaki redak datoteke sadrži jedno ime program treba ispisati sva imena koja se nalaze u prvoj datoteci, a nisu u drugoj datoteci datoteke su relativno male pitanja koja mogu imati utjecaj na odabir implementacije: Je li važno kojim se redosljedom ispisuju imena? Koje operacije koristimo? Predložite algoritam rješenja Objektno orijentirano programiranje, FER 23
24 Koju implementaciju odabrati u sljedećem primjeru? (2) Napisati program koji prima proizvoljan broj imena datoteka preko naredbenog retka svaki redak datoteke sadrži jedno ime program treba ispisati sva a) imena koja se pojavljuju u bilo kojoj od datoteka b) imena koja se pojavljuju u svim datotekama c) imena koja se pojavljuju samo u jednoj datoteci (ali ne i u ostalima) datoteke i njihov broj je relativno malen pitanja koja mogu imati utjecaj na odabir implementacije: Koje operacije koristimo? U kojem poretku želimo ispisati imena? Predložite algoritam rješenja Objektno orijentirano programiranje, FER 24
25 Sučelje List Lista ili slijed (engl. list, sequence) je uređena kolekcija koja može sadržavati duplikate Karakteristike ove kolekcije su: elementi imaju svoju poziciju unutar liste numeracija pozicija ide od 0 može se dohvatiti element na zadanoj poziciji može se umetnuti element na zadanu poziciju može se obrisati element na zadanoj poziciji Ovakva kolekcija u Javi je modelirana je sučeljem List Objektno orijentirano programiranje, FER 25
26 Sučelje List Sučelje List nasljeđuje sučelje Collection te propisuje dodatne metode public interface List<E> extends Collection<E> { E get(int index); E set(int index, E element); boolean add(e element); //optional //optional void add(int index, E element); //optional E remove(int index); //optional boolean addall(int index, Collection<? extends E> c); //optional int indexof(object o); int lastindexof(object o); ListIterator<E> listiterator(); Pretraga ListIterator<E> listiterator(int index); List<E> sublist(int from, int to); Pristup na osnovu pozicije Iteriranje Podskup iz raspona od-do neke pozicije Objektno orijentirano programiranje, FER 26
27 Ugrađene implementacije sučelja List Java nudi dvije implementacije sučelja List: ArrayList lista koja za pohranu elemenata koristi dinamičko polje polje se povećava po potrebi LinkedList lista koja elemente pohranjuje dinamički alocirajući nove čvorove za dvostruko povezanu listu Objektno orijentirano programiranje, FER 27
28 Prodiskutirajte složenosti sljedećih operacija ArrayList get(i)? Dodavanje na početak? Dodavanje na kraj? contains(element)? LinkedList get(i)? Dodavanje na početak? Dodavanje na kraj? contains(element)? Objektno orijentirano programiranje, FER 28
29 Primjeri stvaranja liste Listu možemo stvoriti pozivom statičke metode aslist u klasi Arrays koja prima varijabilni broj argumenata Listu možemo stvoriti i pozivom nekog od konstruktora konkretne implementacije package hr.fer.oop.lists; public class Example1 { hr.fer.oop.lists.example1 public static void main(string[] args) { List<String> list = Arrays.asList("Ivo", "Ana", "Jasna"); List<String> list1 = new ArrayList<>(list); write(list1); List<String> list2 = new LinkedList<>(list); write(list2); } Objektno orijentirano programiranje, FER 29
30 Ispis elemenata liste običnom for petljom Koja je razlika (općenito) između sljedeće dvije metode? Postoji li razlika u složenosti? private static void write(list<string> list) { for(int i = 0, n = list.size(); i<n; i++) { System.out.println(list.get(i)); } } hr.fer.oop.lists.example1 private static void write(list<string> list) { for(int i = 0; i<list.size(); i++) { System.out.println(list.get(i)); } } Objektno orijentirano programiranje, FER 30
31 Ispis elemenata liste for-each verzijom petlje Koja je razlika (općenito) između sljedeće dvije metode? razmotrite različite moguće načine implementacije sučelja List). Postoji li razlika u složenosti? private static void write(list<string> list) { for(int i = 0, n = list.size(); i<n; i++) { System.out.println(list.get(i)); } } hr.fer.oop.lists.example1 private static void write(list<string> list) { for(string s : list) { System.out.println(s); } } Objektno orijentirano programiranje, FER 31
32 Primjer 2 Napisati funkciju koja će primiti polje stringova i ispisati sve elemente obrnutim poretkom, uz izbacivanje duplikata, i to: a) samo koristeći primljeno polje (bez dodatnih podatkovnih struktura) za rješenje pogledati: hr.fer.oop.lists.example2a b) koristeći listu i skup uputa: elemente dodati u listu ako već nisu u listi, upotrijebiti skup radi brže provjere da li je element već u listi c) Koristeći prikladnu implementaciju skupa te listu samo na kraju uputa: imamo implementaciju seta koja čuva poredak! Objektno orijentirano programiranje, FER 32
33 Rješenje primjera 2 b) Polje se obilazi u obrnutom redoslijedu, a element se dodaje u konačnu listu samo ako već nije u listi umjesto provjere po listi (što je sporije), koristi se skup koji sadrži sva iskorištena imena ako element nije bio u skupu metoda add ga dodaje i vraća true, inače vraća false, a skup ostaje nepromijenjen (praktičnije u odnosu na provjeru s contains + add) private static void writeinreverse(string[] names) { } List<String> list = new ArrayList<>(); Set<String> set = new HashSet<>(); for (int i = names.length - 1; i >= 0; i--) { } // Try add. If OK, first occurence => add to list. if (set.add(names[i])) list.add(names[i]); for (String name : list) System.out.println(name); hr.fer.oop.lists.example2b Objektno orijentirano programiranje, FER 33
34 Rješenje primjera 2 c) Slično kao i u prethodnom rješenju koristi se skup za evidentiranje pronađenih imena Za razliku od prethodnog rješenja nema potrebe za posebnom listom, jer LinkedHashSet element obilazi redoslijedom kojim su uneseni. private static void writeinreverse(string[] names) { } Set<String> set = new LinkedHashSet<>(); for (int i = names.length - 1; i >= 0; i--) { } set.add(names[i]); for(string name : set) System.out.println(name); hr.fer.oop.lists.example2c Objektno orijentirano programiranje, FER 34
35 Primjer 3 Napisati program koji s tipkovnice čita niz decimalnih brojeva (jedan broj po retku) quit prekida unos Program ispisuje samo one brojeve koji su barem za 20% veći od prosjeka svih brojeva Ispis brojeva je od manjih prema većima Ideja rješenja: brojeve pohraniti u listu i izračunati prosjek veće ili jednake od limita pohraniti u novu listu ili (ako ne treba sačuvati originalnu listu) iz liste izbaciti sve manje od limita sortirati listu prije ispisa hr.fer.oop.lists.example3 Možemo li koristiti TreeSet umjesto liste koju naknadno sortiramo? Objektno orijentirano programiranje, FER 35
36 Uklanjanje elemenata iz liste i sortiranje Od Jave 8 sučelje List ima default metodu koja uklanja elemente iz liste koji zadovoljavaju određeni predikat. u primjeru koristimo lambda izraz za predikat (više o lambda izrazima u jednim od sljedećih predavanja) Sortiranje vršimo statičkom metodom sort u klasi Collections private static void writeinreverse(string[] names) { } List<Double> numbers = new ArrayList<>();... double avg = calcaverage(numbers); double limit = avg*1.2; //remove all lower than limit numbers.removeif(num -> num < limit); Collections.sort(numbers);... hr.fer.oop.lists.example3 Objektno orijentirano programiranje, FER 36
37 Klasa Collections U paketu java.util. Sadrži niz općenitih metoda za potporu radu s kolekcijama Sve metode su statičke nije predviđeno stvaranje primjerka ove klase Od značajnijih metoda izdvajamo: Metode za dobivanje nepromjenjivih praznih kolekcija (emptylist(), emptyset(), emptymap(),...) Metode za sortiranje lista: sort Metode za slučajno permutiranje elemenata liste (shuffle) Read-only omotači kolekcija (unmodifiablelist, unmodifiableset, ) Sinkronizirajući omotači (synchronizedlist, synchronizedset, ) Obrtanje elemenata liste (reverse),... Objektno orijentirano programiranje, FER 37
38 Primjer 4 (naglasak: oblikovanje) Potrebno je proširiti prethodni program tako da brojeve može primati iz jednog od mnoštva izvora, poput: S tipkovnice (dok se ne unese quit) Iz tekstovne datoteke (dok se ne dođe do kraja datoteke) Preko mreže (nekim komunikacijskim protokolom) Kako biste oblikovali dijelove ovakvog programa, a da izbjegnete dupliciranje koda (primjerice, da svaka implementacija ima kôd koji gradi listu)? Izračun ne bi smio ovisiti o detaljima dohvata brojeva! Objektno orijentirano programiranje, FER 38
39 Primjer 4 (nastavak) Definiramo sučelje za izvor brojeva s 2 metode provjera ima li još brojeva na ulazu dohvat sljedećeg broja s ulaza U programu upotrijebimo jednu od implementacija za dohvat brojeva Ostatak koda kao u primjeru 3. hr.fer.oop.lists.example4.* List<Double> numbers = new ArrayList<>(); NumberSource source = new KeyboardNumberSource(); while(source.hasmorenumbers()) numbers.add(source.getnumber()); //calculate average, remove lower than limit, sort... Objektno orijentirano programiranje, FER 39
40 Modificiranje kolekcije tijekom iteriranja Što napraviti ako tijekom iteriranja korisnik izvana (direktno kroz API kolekcije) modificira kolekciju Primjerice, imamo ulančanu listu od 100 elemenata; kad iterator dođe do trećeg elementa, korisnik izvana obriše prvih 10 elemenata: Od kuda iterator nastavlja? Kako iterator uopće može znati da je nešto obrisano? Da bi se riješio taj problem, iteratori osnovnih kolekcija u Javinom okviru kolekcija implementirani su kao fail-fast iteratori: Kolekcija interno vodi brojač modifikacija koji se svakom modifikacijom ažurira Implementacije iteratora su tipično unutarnje klase koje u trenutku stvaranja pamte trenutnu vrijednost brojača i pri svakom pozivu neke od svojih metoda zapamćenu vrijednost uspoređuju s trenutnom u kolekciji Ako su vrijednosti različite dolazi do pojave iznimke tipa ConcurrentModificationException Jedini način mijenjanja tijekom iteriranja je kroz metode iteratora (postoji samo remove()) Objektno orijentirano programiranje, FER 40
41 Mapa (preslikavanje) Mapa ili preslikavanje (engl. Map) je kolekcija uređenih parova (ključ, vrijednost) Karakteristike ove kolekcije su: mapa ne može pohranjivati više istih ključeva svaki ključ ima pridruženu jednu vrijednost ista vrijednost može biti može biti pridružena više ključeva Ovakva kolekcija modelirana je sučeljem Map U raznim jezicima još je poznata kao rječnik (Dictionary u C#-u) ili kao asocijativno polje (JavaScript, PHP). Objektno orijentirano programiranje, FER 41
42 Primjeri preslikavanja Primjeri preslikavanja: Osoba Telefonski broj Prostorija Skup studenata Matični broj studenta Prosjek ocjena Grupa studenata Skup predavača Šifra kolegija Termin međuispita Uređen par modeliran je sučeljem Map.Entry<K,V> Sučelje unutar sučelja Map ključevi i vrijednosti mogu biti bilo kojeg tipa (osim primitivnih tipova) Jednom dodani ključ je nepromjenjiv može se samo mijenjati pridružena vrijednost interface Entry<K,V> { K getkey(); V getvalue(); V setvalue(v value); Objektno orijentirano programiranje, FER 42 }
43 Pregled metoda sučelja Map public interface Map<K,V> { int size(); boolean isempty(); boolean containskey(object key); boolean containsvalue(object value); V get(object key); V put(k key, V value); //optional V remove(object key); //optional upiti (engl. query operations) metode za izmjene mape void putall(map<? extends K,? extends V> m); //opt. void clear(); //optional Set<K> keyset(); Collection<V> values(); Set<Map.Entry<K, V>> entryset(); Različiti pogledi na mapu boolean equals(object o); int hashcode(); Usporedba i raspršeno adresiranje Objektno orijentirano programiranje, FER 43
44 Sučelje Map: pregled default metoda default V getordefault(object key, V defaultvalue) default void foreach(biconsumer<? super K,? super V> action) default void replaceall(bifunction<? super K,? super V,? extends V> function) default V putifabsent(k key, V value) default boolean remove(object key, Object value) default boolean replace(k key, V oldvalue, V newvalue) default V replace(k key, V value) default V computeifabsent(k key, Function<? super K,? extends V> mappingfunction) default V computeifpresent(k key, BiFunction<? super K,? super V,? extends V> remappingfunction) default V compute(k key, BiFunction<? super K,? super V,? extends V> remappingfunction) default V merge(k key, V value, BiFunction<? super V,? super V,? extends V> remappingfunction) Objektno orijentirano programiranje, FER 44
45 Ugrađene implementacije sučelja Map HashMap poduprta tablicom raspršenog adresiranja većina operacija O(1); iterator nespecificiranog poretka TreeMap poduprta balansiranim binarnim stablom većina operacija O(log(N)); iterator sortiranim poretkom LinkedHashMap kombinacija tablice raspršenog adresiranja i ulančane liste većina operacija O(1); iterator redosljedom umetanja Objektno orijentirano programiranje, FER 45
46 Primjer upotrebe sučelja Map Map<String,Integer> studenttograde = new HashMap<String,Integer>(); studenttograde.put("ana", 5); studenttograde.put("ivo", 4); studenttograde.put("ivana", 5); System.out.format("Ivana ima ocjenu %d %n ", studenttograde.get("ivana")); Objektno orijentirano programiranje, FER 46
47 Primjer 5 Napisati program koji će s tipkovnice čitati niz imena. Program završava ako se za ime unese quit. Program prije završetka mora na zaslon ispisati sva upisana imena i uz svako ime koliko je puta upisano. a) Poredak imena pri ispisu nije bitan b) Ispis imena treba ići abecedno c) Ispis imena treba ići redoslijedom unosa Objektno orijentirano programiranje, FER 47
48 Rješenje primjera 5 Ovo je tipičan primjer u kojem trebamo preslikavanje Za svako ime pamtimo koliko je puta uneseno Prilikom prve pojave nekog imena, metoda get vraća null. Svaki sljedeći put vraća Integer koji označava koliko je puta ime dosad bilo uneseno Metodom put ažuriramo staru vrijednost pridruženu ključu ili dodajemo novi par (ključ, vrijednost) Scanner scanner = new Scanner(System.in); Map<String, Integer> names = new HashMap<>(); System.out.println("Enter names (quit for end):"); String name; while(!(name = scanner.next()).equals("quit") ) { } Integer val = names.get(name); names.put(name, val == null? 1 : val + 1); hr.fer.oop.maps.example5 Objektno orijentirano programiranje, FER 48
49 Ispis sadržaja mape Sučelje Map nema iterator nije nastao iz sučelja Collection Korisnicima nudi poglede kroz tri dodatne kolekcije KeySet: skup ključeva za koje postoji preslikavanje Values: kolekcija vrijednosti koje su pridružene ključevima u mapi razmislite zašto ovo nije skup? Entries: skup uređenih parova (ključ, vrijednost) Ovi pogledi su živi, što znači da izmjena u mapi mijenja i njih, odnosno izmjena u njima mijenja i mapu for(map.entry<string, Integer> entry : names.entryset()) System.out.format("%s occured %d time(s)%n", entry.getkey(), entry.getvalue()); hr.fer.oop. maps.example5 Objektno orijentirano programiranje, FER 49
50 Razlike u rješenjima 5a, 5b i 5c a) Map<String, Integer> names = new HashMap<>(); b) Map<String, Integer> names = new TreeMap<>(); Iteriranje po parovima vrši se sortirano po ključu c) Map<String, Integer> names = new LinkedHashMap<>(); Iteriranje po parovima odvija se onim redoslijedom kojim su parovi dodavani u mapu Objektno orijentirano programiranje, FER 50
51 Ostala osnovna sučelja (1) Od osnovnih sučelja, spomenimo još neka (bez detaljne obrade) Objektno orijentirano programiranje, FER 51
52 Ostala osnovna sučelja (2) Kako bi se pospješila ponovna iskoristivost kôda, stablo nasljeđivanja nije baš kao na prethodnom slajdu već je malo složenije (prikazan je samo dio) Objektno orijentirano programiranje, FER 52
53 Ostale kolekcije Pogled na sučelja vs. implementacije: + PriorityQueue koji također implementira Queue kroz gomilu (heap) Objektno orijentirano programiranje, FER 53
VRIJEDNOSTI ATRIBUTA
VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog
More informationOsnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete
More informationCSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets
CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family
More informationObjektno orijentirano programiranje
Objektno orijentirano programiranje 5. Apstraktne klase i sučelja Zaštićeno licencom http://creativecommons.org/licenses/by-ncsa/3.0/hr/ Creative Commons slobodno smijete: dijeliti umnožavati, distribuirati
More informationCONTAİNERS COLLECTİONS
CONTAİNERS Some programs create too many objects and deal with them. In such a program, it is not feasible to declare a separate variable to hold reference to each of these objects. The proper way of keeping
More informationBinarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133
Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost
More informationOsnove programskog jezika C# Čas 4. Nasledjivanje 2. deo
Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()
More informationCollections (Collection Framework) Sang Shin Java Technology Architect Sun Microsystems, Inc.
Collections (Collection Framework) Sang Shin Java Technology Architect Sun Microsystems, Inc. sang.shin@sun.com www.javapassion.com 2 Disclaimer & Acknowledgments Even though Sang Shin is a full-time employee
More informationClass 32: The Java Collections Framework
Introduction to Computation and Problem Solving Class 32: The Java Collections Framework Prof. Steven R. Lerman and Dr. V. Judson Harward Goals To introduce you to the data structure classes that come
More informationPROGRAMIRANJE. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u
More informationSvi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt
Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući
More informationPREDMET. Osnove Java Programiranja. Čas JAVADOC
PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,
More informationJavaScript i HTML DOM
4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationUčitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.
Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new
More informationPARALELNO PROGRAMIRANJE
Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom
More informationUputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.
Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj
More informationCollections class Comparable and Comparator. Slides by Mark Hancock (adapted from notes by Craig Schock)
Lecture 15 Summary Collections Framework Iterable, Collections List, Set Map Collections class Comparable and Comparator 1 By the end of this lecture, you will be able to use different types of Collections
More informationLecture 15 Summary. Collections Framework. Collections class Comparable and Comparator. Iterable, Collections List, Set Map
Lecture 15 Summary Collections Framework Iterable, Collections List, Set Map Collections class Comparable and Comparator 1 By the end of this lecture, you will be able to use different types of Collections
More informationGenerics Collection Framework
Generics Collection Framework Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283 Generics
More informationProgramiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010
Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa
More informationb) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.
NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while
More informationpojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1
NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija
More informationInformatika Uvod u C#,.NET Framework i Visual Studio... nastavak...
Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike
More informationZaštićeno licencom
Uvod u JavaScript Stjepan Ćavar Ožujak 2013. Zaštićeno licencom http://creativecommons.org/licenses/by-nc-sa/3.0/hr/ Creative Commons slobodno smijete: dijeliti umnožavati, distribuirati i javnosti priopćavati
More informationCS Ananda Gunawardena
CS 15-121 Ananda Gunawardena A collection (sometimes called a container) is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve and manipulate data,
More informationMicrosoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,
Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016
More informationVežbe - XII nedelja PHP Doc
Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje
More information9/16/2010 CS Ananda Gunawardena
CS 15-121 Ananda Gunawardena A collection (sometimes called a container) is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve and manipulate data,
More informationLecture 15 Summary 3/11/2009. By the end of this lecture, you will be able to use different types of Collections and Maps in your Java code.
Lecture 15 Summary Collections Framework Iterable, Collections, Set Map Collections class Comparable and Comparator By the end of this lecture, you will be able to use different types of Collections and
More informationUvod u programiranje - vežbe. Kontrola toka izvršavanja programa
Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if
More informationUputstvo za korišćenje logrotate funkcije
Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen
More informationSets and Maps. Part of the Collections Framework
Sets and Maps Part of the Collections Framework The Set interface A Set is unordered and has no duplicates Operations are exactly those for Collection int size( ); boolean isempty( ); boolean contains(object
More informationCollections and Maps
Software and Programming I Collections and Maps Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline Array Lists Enhanced for Loop ArrayList and LinkedList Collection Interface Sets and
More informationWindows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365
Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint
More informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment:
More informationTopic #9: Collections. Readings and References. Collections. Collection Interface. Java Collections CSE142 A-1
Topic #9: Collections CSE 413, Autumn 2004 Programming Languages http://www.cs.washington.edu/education/courses/413/04au/ If S is a subtype of T, what is S permitted to do with the methods of T? Typing
More informationJava collections framework
Java collections framework Commonly reusable collection data structures Java Collections Framework (JCF) Collection an object that represents a group of objects Collection Framework A unified architecture
More informationProgramske paradigme Funkcionalna paradigma
Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju
More informationGenerics and collections
Generics From JDK 1.5.0 They are similar to C++ templates They allow to eliminate runtime exceptions related to improper casting (ClassCastException) Traditional approach public class Box { private Object
More informationVB komande. Programiranje 1
VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj
More informationCharlie Garrod Bogdan Vasilescu
Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 2: Designing (sub-) systems Java Collec9ons design case study Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia
More informationProgramski jezik JAVA PREDAVANJE
Programski jezik JAVA PREDAVANJE 8 2018 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom
More informationfor i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;
{*Na Evroviziji je ucestvovalo n izvodjaca. Koji od njih je osvojio najvise glasova publike?*} program Evrovizija; glasovi:array[1..50] of integer; max,k:integer; writeln('unosi se broj izvodjaca:'); writeln('unose
More informationJava collections framework
Java collections framework Commonly reusable collection data structures Abstract Data Type ADTs store data and allow various operations on the data to access and change it ADTs are mathematical models
More informationnamespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
More informationCollections (Java) Collections Framework
Collections (Java) https://docs.oracle.com/javase/tutorial/collections/index.html Collection an object that groups multiple elements into a single unit. o store o retrieve o manipulate o communicate o
More informationUvod u relacione baze podataka
Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja
More informationIntroduction to Collections
Module 3 COLLECTIONS Introduction to Collections > A collection sometimes called a container is simply an object that groups multiple elements into a single unit. > Collections are used to store, retrieve,
More informationJava Collections. Readings and References. Collections Framework. Java 2 Collections. References. CSE 403, Winter 2003 Software Engineering
Readings and References Java Collections References» "Collections", Java tutorial» http://java.sun.com/docs/books/tutorial/collections/index.html CSE 403, Winter 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03wi/
More informationUpute za postavljanje Outlook Expressa
Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete
More informationJava Collections Framework: Interfaces
Java Collections Framework: Interfaces Introduction to the Java Collections Framework (JCF) The Comparator Interface Revisited The Collection Interface The List Interface The Iterator Interface The ListIterator
More informationNaredbe za kontrolu toka
Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku
More information11-1. Collections. CSE 143 Java. Java 2 Collection Interfaces. Goals for Next Several Lectures
Collections CSE 143 Java Collections Most programs need to store and access collections of data Collections are worth studying because... They are widely useful in programming They provide examples of
More informationObjektno orjentirano programiranje
Objektno orjentirano programiranje Predavanje 4 Objektno orijentirani koncepti Konstruktori Metoda koja se poziva prilikom stvaranja novog objekta Svojstveni su OO programiranju Imaju isto ime kao i klasa
More information17. Java Collections. Organizing Data. Generic List in Java: java.util.list. Type Parameters ( Parameteric Polymorphism ) Data Structures that we know
Organizing Data Data Structures that we know 17 Java Collections Generic Types, Iterators, Java Collections, Iterators Today: Arrays Fixed-size sequences Strings Sequences of characters Linked Lists (up
More informationGUI - događaji (Events) i izuzeci. Bojan Tomić
GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša
More informationAn Interface with Generics
Generics CSC207 Software Design Generics An Interface with Generics Generics class foo introduces a class with a type parameter T. introduces a type parameter that is required to be
More informationString. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta
String string ili znakovni niz (string) nije niz znakova u Javi su stringovi klase String paketa java.lang!!! Usporedba: char gf = G ; Niz znakova String char [] gf = { G, e, o, d, e, t, s, k, i ; String
More informationUvod u web programiranje: Uvod u CSS
Uvod u web programiranje: Uvod u CSS Dubrovnik, ožujak 2013. Tomo Sjekavica Zaštićeno licencom http://creativecommons.org/licenses/by-nc-sa/3.0/hr/ Creative Commons slobodno smijete: dijeliti umnožavati,
More informationDogađaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.
Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,
More informationVDSL modem Zyxel VMG1312-B10A/B30A
VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,
More informationSberbank Business Online na Mozilla FireFox
Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI
More informationWhat is the Java Collections Framework?
1 of 13 What is the Java Collections Framework? To begin with, what is a collection?. I have a collection of comic books. In that collection, I have Tarzan comics, Phantom comics, Superman comics and several
More informationUputstvo za podešavanje mail klijenta
Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno
More informationPrva recenica. Druga recenica.
Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta
More informationOBJEKTNO ORIJENTISANO PROGRAMIRANJE
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 12: NASLEĐIVANJE Miloš Kovačević Đorđe Nedeljković 1 /17 OSNOVNI KONCEPTI - Statički i dinamički tipovi podataka - Prepisivanje metoda superklase - Polimorfizam
More informationDM550 Introduction to Programming part 2. Jan Baumbach.
DM550 Introduction to Programming part 2 Jan Baumbach jan.baumbach@imada.sdu.dk http://www.baumbachlab.net MULTIVARIATE TREES 2 Multivariate Trees general class of trees nodes can have any number of children
More informationOverview of Java ArrayList, HashTable, HashMap, Hashet,LinkedList
Overview of Java ArrayList, HashTable, HashMap, Hashet,LinkedList This article discusses the main classes of Java Collection API. The following figure demonstrates the Java Collection framework. Figure
More informationKLASIFIKACIJA JELENA JOVANOVIĆ. Web:
KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti
More informationpublic static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */
Java Uvod Hello world primer Java program predstavlja skup objekata koji prozivaju jedni drugima metode i tako komuniciraju. Izvorni kod se uvek čuva u datotekama sa ekstenzijom.java. Ispod je predstavljen
More information4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7
Java zadaci Zadaci 1. Priprema novog projekta... 1 2. Organizacija klasa u fajlove... 2 3. Ispis vrijednosti u konzolni prozor... 3 4. Učitavanje vrijednosti sa konzolnog prozora... 4 4.1 Učitavanje podatka
More informationILM implementacija DWH baza u T-mobile
ILM implementacija DWH baza u T-mobile Bojan Šumljak, PS Consultant Hrvoje Dubravica, PS Head Consultant www.snt-world.com 1 Što je ILM? - information Lifecycle Management praksa primjenjivanja pravila
More informationmodifier returnvaluetype methodname(list of parameters) { // Method body; }
Početna grupa, 28.11.2015. Metodi 1. Metodi opšti oblik metoda: modifier returnvaluetype methodname(list of parameters) // Method body; 2. Ime metoda: početno slovo je malo, a zatim slijede slova, cifre
More informationIzrada VI laboratorijske vježbe
Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box
More informationSveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje
More informationRačunarske osnove Interneta (SI3ROI, IR4ROI)
Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 7. (A subset of) the Collections Interface. The Java Collections Interfaces
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 7 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 29, 2007 Last Time Practice Some Sorting Algs
More informationGeneric classes & the Java Collections Framework. *Really* Reusable Code
Generic classes & the Java Collections Framework *Really* Reusable Code First, a bit of history Since Java version 5.0, Java has borrowed a page from C++ and offers a template mechanism, allowing programmers
More informationNIZOVI.
NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata
More informationNizovi. Programiranje 1
Nizovi Programiranje 1 VB Nizovi Zamislite da imate 10,000 šešira i da morate svakome od njih dati jedinstvenu oznaku. Kako biste to napravili? Bilo bi razumno svakom šeširu dati njegov broj. Sada možete
More informationInformacioni sistemi i baze podataka
Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka Dr Slavica Kordić Milanka Bjelica Vojislav Đukić Rad u učionici (1/2) Baze podataka (db2015): Studentska korisnička šema
More informationvar Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.
1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align
More informationCOURSE 4 PROGRAMMING III OOP. JAVA LANGUAGE
COURSE 4 PROGRAMMING III OOP. JAVA LANGUAGE PREVIOUS COURSE CONTENT Inheritance Abstract classes Interfaces instanceof operator Nested classes Enumerations COUSE CONTENT Collections List Map Set Aggregate
More informationFamily Name:... Other Names:... ID Number:... Signature... Model Solutions. COMP 103: Test 1. 9th August, 2013
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Model Solutions COMP 103: Test
More informationPractical Session 3 Java Collections
Practical Session 3 Java Collections 1 Outline Working with a Collection The Collection interface The Collection hierarchy Case Study: Undoable Stack Maps The Collections class Wrapper classes 2 Collection
More information[Ref: Core Java Chp 13, Intro to Java Programming [Liang] Chp 22, Absolute Java Chp 16, docs.oracle.com/javase/tutorial/collections/toc.
Contents Topic 08 - Collections I. Introduction - Java Collection Hierarchy II. Choosing/using collections III. Collection and Iterator IV. Methods of Collection V. Concrete classes VI. Implementation
More informationObjektno orijentirano programiranje. Auditorne vježbe
Objektno orijentirano programiranje Auditorne vježbe Elektrotehnički fakultet Osijek Kneza Trpimira 2b 31000 Osijek www.etfos.hr 1. UVOD U C++ 1.1 Strukturno programiranje i C++ U programiranju danas dominiraju
More informationSUMMARY INTRODUCTION COLLECTIONS FRAMEWORK. Introduction Collections and iterators Linked list Array list Hash set Tree set Maps Collections framework
SUMMARY COLLECTIONS FRAMEWORK PROGRAMMAZIONE CONCORRENTE E DISTR. Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2015 2016 Introduction Collections and
More informationPROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler
More informationAlgoritmi i strukture podataka 2. Čas, Uvod u C++
Algoritmi i strukture podataka 2. Čas, Uvod u C++ Aleksandar Veljković 2017/2018 1 Uvod Jezik C++ je jezik koji pripada objektno orijentisanoj paradigmi, ipak, u okviru ovog kursa naglasak neće biti na
More informationFramework in Java 5. DAAD project Joint Course on OOP using Java
Topic XXX Collections Framework in Java 5 DAAD project Joint Course on OOP using Java Humboldt University Berlin, University of Novi Sad, Polytehnica University of Timisoara, University of Plovdiv, University
More informationCollections Framework: Part 2
Collections Framework: Part 2 Computer Science and Engineering College of Engineering The Ohio State University Lecture 18 Collection Implementations Java SDK provides several implementations of Collection
More informationJezik Baze Podataka SQL. Jennifer Widom
Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case
More informationSoftware 1 with Java. Java Collections Framework. Collection Interfaces. Online Resources. The Collection Interface
Java Collections Framework Collection: a group of elements Based Design: Software 1 with Java Java Collections Framework s s Algorithms Recitation No. 6 (Collections) 2 Collection s Online Resources Collection
More informationPrinciples of Software Construction: Objects, Design and Concurrency. More design patterns and Java Collections. toad
Principles of Software Construction: Objects, Design and Concurrency 15-214 toad More design patterns and Java Collections Spring 2013 Christian Kästner Charlie Garrod School of Computer Science 2012-13
More information... ; ako je a n parno. ; ako je a n neparno
Zadaci vezani za ciklus sa preduslovom (WHILE) Zad. Napisati program za izračunavanje n_tog stepena broja a. Zad2. Napisati program za izračunavanje sume S kvadrata parnih i kubova neparnih prirodnih brojeva
More informationx y = z Zadaci - procedure
Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je
More informationUPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a
UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa
More information