gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Zadatak Putnici - Hash funkcija i funkcija jednakosti
[spa2-materijali.git] / Hash / putnici / _zadatak.txt
1 Rad sa skupovima, funkcija jednakosti i hesh funkcija
2 ============================================================
4 Napraviti program koji proverava da li su putnici na spisku
5 zabrana letenja.
7 Potrebno je napraviti klasu `Putnik` koja je predstavljena
8 sa imenom, prezimenom i godinom rodjenja.
10 Iz fajla "noflightlist.txt" treba ucitati odgovarajuce
11 putnike koji ne smeju da lete.
13 Podatke smestiti u instancu klase "HashSet".
16 Pojedinacna provera
17 --------------------
19 Omoguciti da se unese novi putnik sa svojim podacima i
20 ispisati da li on sme da leti ili ne.
23 Masovna provera
24 ----------------
26 Ucitati putnike iz fajla "flight.txt" i ispisati one
27 koji ne smeju da lete na ekranu.
30 Funkcija jednakosti
31 ===================
33 Potrebno je u okviru klase implementirati metod:
35 public boolean equals(Object o) { ... }
37 Dobijeni objekat treba proveriti da li je dobrog tipa i onda
38 ga pretvoriti u odgovajuci tip radi dalje provere.
41 Hesh funkcija
42 =============
44 Radi tacnog funkcionisanja skupa (HashSet) mora postojati
45 i adekvatna hesh funkcija u klasi:
47 public int hashCode() {...}
49 Ona mora da vraca uvek isti broj za isti sadrzaj objekta.
51 Takodje se uvek ocekuje da za dva objekta za koje `equals`
52 vraca da su isti i hesh funkcija vraca iste vrednosti.
53 Obrnutno ne vazi u opstem slucaju, tj objekti sa istom
54 hesh vrednoscu ne moraju biti isti.
56 Radi efikasnosti funkcionisanja skupa, potrebno je da ova
57 funkcija vraca sto razlicitije vrednosti za razlicite objekte,
58 u idealnom slucaju su to uvek razlicite vrednosti za manje
59 od 2^32 razlicitih objekata.
61 Tehnicki je funkcija koja uvek vraca isti broj za sve
62 objekte ispravna, ali je veoma neefikasna za koriscenje
63 objekata u skupu.
66 Dodatak za vezbu
67 =================
69 Modifikovati program tako da ne uzima u obzir godinu
70 rodjenja pri pretragama, nego samo ime i prezime i da
71 ispisuje upozorenja i za putnike koji samo imaju isto ime i
72 prezime kao neko sa spiska.
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner